Jquery用文本查找所有元素

时间:2010-06-22 08:14:30

标签: jquery text

扫描所有DOM的最佳方法是什么,找到任何包含文本的元素并将其包装在span类中? 感谢

2 个答案:

答案 0 :(得分:14)

包装所有包含除空格之外的内容的文本节点:

$('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 />")

答案 1 :(得分:1)

您可以使用 .each 来迭代所有元素:

$('*').each(function(){
    if($(this).text())
    {
        $(this).wrapInner('<span />');
    }
})

我没有测试那段代码但是很简单。您需要了解的只有 .each wrapInner 和*选择器。 jQuery文档在这里非常有用。