我需要更改createTextNode()函数创建的元素的字体:
var s = document.createTextNode(item.text);
s.setAttribute("font size") = -1;
elem.appendChild(s);
在我的代码中,我在Firebug上收到错误:
s.setAttribute不是函数
如何更改已创建元素的字体?
答案 0 :(得分:10)
您没有在文本节点上指定字体,在父元素上执行此操作 - 在您的情况下:
elem.style.fontSize = "20px";
如果您不想更改整个父元素的字体大小,可以创建一个<span>
元素来环绕文本节点:
var span = document.createElement('span');
span.style.fontSize = "20px";
span.appendChild(s);
elem.appendChild(span);
答案 1 :(得分:1)
createTextNode创建一个只有一个方法的Text节点:splitText。 setAttribute是DOM Core的一种方法,由Element接口实现(即不是文本节点)。
通常,你应该避免使用setAttribute,因为它有很多怪癖,并且设置相关的DOM属性更快更可靠。
在任何情况下,HTML 4.01中都没有为文本节点指定“fontSize”属性,因此您不能指望浏览器实现它。文本节点从其父元素继承它们的样式,因此如果要设置某些文本的字体大小,请将其包装在元素中:
window.onload = function() {
var span = document.createElement('span');
// Set DOM property
span.style.fontSize = '200%';
span.appendChild(document.createTextNode('hey'));
// Add to document
document.body.appendChild(span);
};
但总的来说,最好定义一个类中的样式并将其附加到span。
答案 2 :(得分:0)
也许你可以使用内联css。从未尝试使用textnode
setAttribute('style', 'font-size:-1;');