我只需要更改div中的文本,其中包含其他元素。我尝试了text
方法,但它改变了div的全部内容。
示例div:
<div class="mydiv">
MY TEXT HERE
<ul>
<li>BLAH</li>
<li>BLAH</li>
</ul>
</div>
这就是我现在尝试过的:$(".mydiv").text("MY NEW TEXT");
答案 0 :(得分:7)
$.fn.extend({
text2: function(t){
return this.each(function(a,b){
$(b).contents().map(function(c,d){
return (d.nodeType === 3 ? d : null);
}).get(0).data = t;
});
}
});
有我的解决方案。仅影响在选择器中找到的第一个文本节点,然后将其替换为提供的文本。使用此功能,$('.mydiv').text2('MY NEW TEXT');
应该有效flawlessly。
答案 1 :(得分:2)
将div的文本放入另一个元素,然后用jQuery选择并替换该元素。
$('.mydiv div.text').text("MY NEW TEXT")
<div class="mydiv">
<div class="text">MY TEXT HERE</div>
<ul>
<li>BLAH</li>
<li>BLAH</li>
</ul>
</div>
答案 2 :(得分:1)
答案 3 :(得分:1)
针对特定情况尝试此操作:http://jsfiddle.net/mtH27/10/
$(".mydiv")[0].firstChild.nodeValue = "Is this what you want?"
答案 4 :(得分:0)