如何最好地扫描整个DOM,查找任何具有文本的元素并将其包装在span类中?谢谢。
将包含除空格以外内容的所有文本节点进行包装:
$('body *').contents().filter(function() {
return (this.nodeType == 3) && this.nodeValue.match(/\S/);
}).wrap("<span />")
为了包装所有文本节点,包括那些只包含空格的节点:
$('body *').contents().filter(function() {
return (this.nodeType == 3) && this.nodeValue.length > 0;
}).wrap("<span />")
$('*').each(function(){
if($(this).text())
{
$(this).wrapInner('<span />');
}
})
我没有测试过那段代码,但它非常简单。你需要学习的只有.each、wrapInner和*选择器。jQuery文档在这里非常有帮助。