如何使用.contents()更改文本节点的值?

时间:2014-03-27 04:11:29

标签: javascript jquery

这是我的HTML:,

<div>hello<span>hai</span></div>

在上面的结构中,我只需要将值“hello”更改为其他文本,所以我尝试了这个:

$('div').contents()[0].value = "text"; //attempt 1
$('div').contents()[0] = "text"; //attempt 2

任何人都可以提出正确的方法来实现我想要的......?

DEMO

2 个答案:

答案 0 :(得分:4)

您可以使用.nodeValue属性

$('div').contents()[0].nodeValue = "text";

演示:Fiddle

$('div').prop('firstChild').nodeValue = "text";

演示:Fiddle

答案 1 :(得分:1)

检查此 demo jsFiddle

 $('div').contents()[0].nodeValue = 'test';

更改特定字符串替换的另一种方法,

检查此 demo jsFiddle

$('div').contents(':contains("hello")')[0].nodeValue = 'test';

$('#one').contents(':not(*)')在这种情况下,文本节点选择非元素子节点,第一个节点是我们要替换的节点。

$('div').contents(':not(*)')[0].nodeValue = ' test ';

检查 demo jsFiddle

希望这对你有帮助!