如何在jQuery中查找内部文本的所有元素

时间:2013-12-05 23:00:31

标签: jquery

查找包含内部文本的所有元素的jquery是什么?

$("*:contains(*)")似乎错了......

3 个答案:

答案 0 :(得分:1)

什么是“内部文字”?这是你想要的吗?

var elems = [];
$('*').each(function(){
    if ($(this).text().length > 0) {
        elems.push($(this));
    }
});

console.log('Elements with text: ' + elems.length);
console.log('All elements with text:' + elems);

答案 1 :(得分:1)

$.filter("*")会做你想要的。

使用innerHTML的示例:

$(document.getElementById("elementID").innerHTML).filter("*");

答案 2 :(得分:0)

如果将“内部文本”定义为具有文本节点,我认为这将做你想要的:

http://jsfiddle.net/TMyRr/

var $elementsWithTextNodes = $('*').filter(function(){
    return $(this).contents().filter(function() {
       return this.nodeType == 3 && $.trim($(this).text()) != ''; 
    }).length;
});