为什么我不能简单地添加文字?

时间:2014-03-05 09:40:54

标签: jquery

在回答问题时我遇到了一些问题。我试图简单地添加文本但不能。

<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');

它无效!

2 个答案:

答案 0 :(得分:2)

您只能在引用DOM元素的jQuery对象前面添加。除此之外,如果您预先添加已删除的内容,则无论如何都不会看到任何效果。如果您get(0)文本节点,则可以更改其内容:

var ur_text = "your text";
$('.booktext').contents().filter(function(){
    return this.nodeType !== 1;
}).get(0).textContent = ur_text;

JSFiddle

答案 1 :(得分:1)

您正在移除元素,然后使用前置定位它们。您不能将内容添加到现有元素中。使用end()

再次定位DIV的内容

DEMO jsFiddle

var ur_text = "your text";
$('.booktext').contents().filter(function(){
     return this.nodeType !== 1;
}).remove().end().prepend('your text');