createTextNode不保留字体样式

时间:2015-04-24 21:01:27

标签: javascript html css fonts

所以现在我正在开发一个动态添加内容的列表。所以到目前为止我有这个代码,这是我的javascript

$("#textBox").keypress(function(e) {
if(e.keyCode == 13)
    addToSticky();
});

function addToSticky() {
    if(count < 5){      
        var text = document.getElementById("textBox").value;
        var node = document.createElement("LI");
        var textnode = document.createTextNode(text);
        node.appendChild(textnode);
        document.getElementById("list").appendChild(node);
        count = count + 1;
    }else
        hideBox("textBox");
}

这是我的HTML

<a href="#" class="sticky" STYLE="text-decoration: none">
    <h2 STYLE="font-size:200%; font-weight:bold; padding-bottom:10px; margin-top: 4px"> 
                Notes 
    </h2>
    <p>                 
        <ul id="list" STYLE="padding-left: 20px">
            <li> <b>Hire this guy! </b></li>
        </ul>
        <input type="text" name="input" id="textBox">               
    </p>
</a>

最后但并非最不重要的是在我的CSS中我做了&lt; a&gt;,&lt; li>和我的&lt; h2&gt;都将字体样式设置为我的自定义字体。但是,当您输入要添加到列表中的内容时,它会在自定义字体中键入,但是当它最终添加时,在appendChild中,它不再具有自定义字体。

2 个答案:

答案 0 :(得分:1)

第一个元素的文本包含在粗体标记内,而后面添加的文本则不包含。

如果要使列表项变为粗体,最好的方法是使用CSS设置所有列表项元素的font-weight属性:

li {
    font-weight : bold;
}

答案 1 :(得分:0)

插入以下行

var font = document.createElement("b");
node.appendChild(font);

var textnode = document.createTextNode(text)

请参阅http://jsfiddle.net/1e8zzLep/