Javascript jquery如何使用。。。。。addClass().find().text()

Javascript jquery如何使用。。。。。addClass().find().text(),javascript,jquery,Javascript,Jquery,以下是我想要的结果: <div id="error" class="alert warning"><span class="icon"></span>text here</div> 其结果是: <div id="error" class="alert warning"><span class="icon">text here</span></div> <div id="error-arch

以下是我想要的结果:

<div id="error" class="alert warning"><span  class="icon"></span>text here</div>
其结果是:

<div id="error" class="alert warning"><span class="icon">text here</span></div>
<div id="error-arch" class="alert warning">text here</div>
其结果是:

<div id="error" class="alert warning"><span class="icon">text here</span></div>
<div id="error-arch" class="alert warning">text here</div>
这里的文本

我做错了什么?

而不是在
div
上调用
.text()
,它取代了
div
的所有内容,即us
append

$('#error')
    .addClass('alert warning').append('text here')
    .find('span').addClass('icon');
这是小提琴:


如果其中已经有文本,并且只想替换它,则必须首先找到文本节点:

$('#error').contents().filter(function() {
    return this.nodeType == 3;
}).last()[0].nodeValue = 'New Text';
这是小提琴:

我建议:

$('#error')
    .addClass('error warning')
    .find('span')
    .addClass('icon')
    .after(
        function () {
            return document.createTextNode('text here');
        });


尽管我似乎在
addClass()
中添加了错误的类名,但不管怎样,理论是完全相同的,但显然要将类名修改为您想要添加的类名。而且,在链接的Fiddle中,我不得不根据您在jQuery方法中添加/执行的操作来猜测起始HTML。

是的,它与.append('text here')一起工作,但它总是在这里重复文本这里文本这里文本这里文本,您从什么开始?