在回答问题时我遇到了一些问题。我试图简单地添加文本但不能。
<div>
<span>some</span>
</div>
应该导致
<div>prepended text here
<span>some</span>
</div>
这些不起作用:
$('div').prepend('prepended text here');
$('div').prepend(html('prepended text here'));
$('div').prepend(text('prepended text here'));
那么,我怎样才能简单地添加文本呢?
更新
哦!抱歉,这有效,但请看http://jsfiddle.net/Znsj8/1/
$('.booktext').contents().filter(function(){
return this.nodeType !== 1;
}).remove().prepend('your text');
它无效!
答案 0 :(得分:2)
您只能在引用DOM元素的jQuery对象前面添加。除此之外,如果您预先添加已删除的内容,则无论如何都不会看到任何效果。如果您get(0)
文本节点,则可以更改其内容:
var ur_text = "your text";
$('.booktext').contents().filter(function(){
return this.nodeType !== 1;
}).get(0).textContent = ur_text;
答案 1 :(得分:1)
您正在移除元素,然后使用前置定位它们。您不能将内容添加到现有元素中。使用end()
:
var ur_text = "your text";
$('.booktext').contents().filter(function(){
return this.nodeType !== 1;
}).remove().end().prepend('your text');