这是我想要的结果:
<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>
我做错了什么?
答案 0 :(得分:0)
而不是在.text()
上调用div
来取代所有div
的内容,而不是append
:
$('#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';
答案 1 :(得分:0)
我建议:
$('#error')
.addClass('error warning')
.find('span')
.addClass('icon')
.after(
function () {
return document.createTextNode('text here');
});
虽然我似乎在addClass()
中添加了错误的类名,但理论完全相同,不过,但显然将类名修改为你想要添加的类名。而且,在链接小提琴中,我不得不根据你在jQuery方法中添加/执行的内容来猜测起始HTML。