0

这是我想要的结果:

<div id="error" class="alert warning"><span  class="icon"></span>text here</div>

我试过这个:

$('#error').addClass('alert error').find('span').addClass('icon').text('text here');`

结果是:

<div id="error" class="alert warning"><span class="icon">text here</span></div>

我也试过这个:

$('#error').addClass('alert warning').text('text here').find('span').addClass('icon');

结果是:

<div id="error-arch" class="alert warning">text here</div>

我究竟做错了什么?

4

2 回答 2

0

我建议:

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

JS 小提琴演示

虽然我似乎在 中添加了错误的类名addClass(),但理论完全一样,无论如何,但显然将类名修改为您要添加的那些。而且,在链接的小提琴中,我不得不根据您在 jQuery 方法中添加/执行的内容来猜测起始 HTML。

于 2013-02-10T01:53:43.897 回答
0

我们没有调用替换所有内容.text()的,而是:divdivappend

$('#error')
    .addClass('alert warning').append('text here')
    .find('span').addClass('icon');

这是小提琴:http: //jsfiddle.net/v2ULf/


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

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

这是小提琴:http: //jsfiddle.net/v2ULf/1/

于 2013-02-10T01:40:58.957 回答