首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改可内容div中文本的颜色

更改可内容div中文本的颜色
EN

Stack Overflow用户
提问于 2015-07-23 08:36:44
回答 5查看 11.2K关注 0票数 7

演示在这里

我有一个可满足的部门。我希望div中的功能如下:

当我点击红色锚标签时,我将要写的新文本将是红色的,当单击蓝色时,文本应该开始用蓝色书写。

注意:单击蓝色锚点时,用红色写的内容不应该变成蓝色,反之亦然。这意味着,在div中,我们将最终用红色和蓝色书写文本。我可以在div的任何地方写短信。

代码语言:javascript
复制
$("#red").click(function () {
    $("div").addClass("red");
    $("div").removeClass("blue");
});

$("#blue").click(function () {
    $("div").addClass("blue");
    $("div").removeClass("red");
});

问题:我的代码中的问题是,当我单击红色时,它会以红色和蓝色更改div的所有颜色。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-23 09:57:59

您可以为这种用例使用HTML编辑API。参考资料:https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html

简而言之,使用execCommandstyleWithCSS来实现您想要的结果。styleWithCSS将允许您控制execCommand方法是否应该在文档中生成CSS或execCommand格式。传递true以使用CSS样式,而不是生成字体标记。

在下面试试..。

示例片段

代码语言:javascript
复制
var 
    red = document.getElementById("red"),
    blue = document.getElementById("blue"),
    reset = document.getElementById("reset")
;

red.addEventListener("click", function() { setColor("#f00"); });
blue.addEventListener("click", function() { setColor("#00f"); });
reset.addEventListener("click", function() { setColor("#000"); });

function setColor(color) {
    document.execCommand('styleWithCSS', false, true);
    document.execCommand('foreColor', false, color);
}
代码语言:javascript
复制
<a href="#" id="red">Red</a> | <a href="#" id="blue">Blue</a> | <a href="#" id="reset">Reset</a> | 
<p contentEditable="true" id="ce">this is some text</p>

这将生成应用CSS的HTML,如下所示:

代码语言:javascript
复制
<p contenteditable="true">
    this is <span style="color: #f00;">some</span> text
</p>

希望这能有所帮助。

票数 14
EN

Stack Overflow用户

发布于 2015-07-23 09:43:18

,请试试这个

代码语言:javascript
复制
$("#red,#blue").click(function () {
    $new = $("<div>", {
            class: $(this).attr('id'), 
            contenteditable : 'true'
        })
    $("#my-contenteditable-div")
        .append($new)
        .children('div:last').focus();
});

演示

票数 1
EN

Stack Overflow用户

发布于 2015-07-23 09:37:34

这是我累的东西。我不知道你想达到什么目的。

我所做的: 1。我所做的是创建可编辑的跨度与红色和蓝色时,按钮被点击。2. span的负裕度,以减少“&nbsp;”所创造的空间

检查密码。小提琴

代码语言:javascript
复制
$("#red").click(function () {
       $('<span>')                      
        .attr('contenteditable','true') 
       .attr('class','red') 
        .html('&nbsp;')        
        .appendTo('#my-contenteditable-div')   
});

$("#blue").click(function () {
   $('<span>')                      
        .attr('contenteditable','true') 
       .attr('class','blue') 
        .html('&nbsp;')        
        .appendTo('#my-contenteditable-div')   
});
代码语言:javascript
复制
.red
{
    color:red;
}
.blue
{
    color:blue;
}
div
{
    height:100px;
    border:1px solid red;
}
span{margin-left:-4px;}
代码语言:javascript
复制
<a href="#" id="red">Red Pen</a><br/>
<a href="#" id="blue">Blue Pen</a><br/><br/><br/>
<div contenteditable="true" id="my-contenteditable-div"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31582205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档