jquery更改div上的文本

我只需要更改div中的文本,其中包含其他元素。 我尝试了text方法,但它改变了div的整个内容。

示例div:

 
MY TEXT HERE
  • BLAH
  • BLAH

这就是我现在所尝试的: $(".mydiv").text("MY NEW TEXT");

 $.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'); 应该完美无瑕地工作。

将div的文本放入另一个元素,然后用jQuery选择并替换该元素。

 $('.mydiv div.text').text("MY NEW TEXT") 
MY TEXT HERE
  • BLAH
  • BLAH

只需使用.html()方法:

 $(".mydiv").html("MY NEW TEXT"); 

演示: http : //jsfiddle.net/andresilich/mtH27/

试试这个特殊情况: http : //jsfiddle.net/mtH27/10/

 $(".mydiv")[0].firstChild.nodeValue = "Is this what you want?" 

此方法更容易:不是尝试使用文本节点操作,而是从元素中删除所有标记,替换内部文本,并附加标记:

http://jsfiddle.net/NFEgE/1/

如果您需要担心多个文本节点,这将变得更加复杂。