首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改文本-节点文本

更改文本-节点文本
EN

Stack Overflow用户
提问于 2012-01-31 21:35:56
回答 3查看 2K关注 0票数 1

如何更改文本节点文本?

HTML:

代码语言:javascript
复制
<p class='theClass'> bbb <a href=#> foo</a> aaa </p>

我正在尝试将“aaa”和“bbb”更改为hello world。我成功地选择了这些节点,但无法更改它们的文本。

到目前为止Jquery:

代码语言:javascript
复制
var $textNodes = $('.theClass').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
});

JSFiddle

如何使用此$textNodes更改他们的文本?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-31 21:41:37

使用文本节点的nodeValuedata属性。两者都是有效的,并且都得到了很好的支持:

代码语言:javascript
复制
$textNodes.each(function() {
    this.data = "CHANGED";
});

顺便说一句,IE < 9中不存在Node.TEXT_NODE,所以您最好改用3

票数 3
EN

Stack Overflow用户

发布于 2012-01-31 21:41:33

不能使用jQuery直接编辑文本节点。

只需在节点上直接使用原生datanodeValue属性即可。

代码语言:javascript
复制
$textNodes.each(function() {
    this.data = "Hello world";
 // this.nodeValue = "Hello world";
});

jsFiddle

票数 2
EN

Stack Overflow用户

发布于 2012-01-31 21:44:45

MDN中花了很长时间才找到的

由于一些愚蠢的原因,这个属性被称为nodeValue而不是value

固定JQuery:

代码语言:javascript
复制
var $textNodes = $('.theClass').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
}).each(function(){
    this.nodeValue = "hello World";
});

固定JSFiddle

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

https://stackoverflow.com/questions/9080407

复制
相关文章

相似问题

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