首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在createTextNode()之后更改字体

在createTextNode()之后更改字体
EN

Stack Overflow用户
提问于 2011-04-05 08:24:14
回答 3查看 28.7K关注 0票数 11

我需要更改createTextNode()函数创建的元素的字体:

代码语言:javascript
复制
var s = document.createTextNode(item.text);
s.setAttribute("font size") = -1;
elem.appendChild(s);

在我的代码中,我得到了Firebug上的错误:

s.setAttribute不是一个函数

如何更改已创建元素的字体?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-05 08:32:24

您没有在文本节点上指定字体,而是在父元素上指定字体--在您的示例中:

代码语言:javascript
复制
elem.style.fontSize = "20px";

如果不希望更改整个父元素的字体大小,则可以创建一个<span>元素来环绕文本节点:

代码语言:javascript
复制
var span = document.createElement('span');
span.style.fontSize = "20px";
span.appendChild(s);
elem.appendChild(span);
票数 13
EN

Stack Overflow用户

发布于 2011-04-05 08:49:01

createTextNode创建一个只有一个方法的文本节点: splitText。setAttribute是DOM的一种方法,它由元素接口(即不是文本节点)实现。

通常,您应该避免使用setAttribute,因为它有许多奇怪之处,并且设置相关的DOM属性更快、更可靠。

无论如何,HTML4.01中没有为文本节点指定"fontSize“属性,所以您不能期望浏览器实现它。文本节点从其父元素继承其样式,因此,如果要设置某些文本的字体大小,请将其包装在元素中:

代码语言:javascript
复制
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中。

票数 5
EN

Stack Overflow用户

发布于 2011-04-05 08:32:15

也许你可以使用内联css。但是,从没有尝试过使用文本节点。

代码语言:javascript
复制
setAttribute('style', 'font-size:-1;');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5549114

复制
相关文章

相似问题

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