选择包含文本内容的元素?

时间:2011-10-16 23:06:15

标签: jquery css css3

我想选择所有带有直接文字内容的元素。所以给出了文件

<div>
 <h1>Hi</h1>
 <article>
   <p>blah balah blah</p>
   <p>blah blahrg blarg</p>
 </article>
 <footer></footer>
</div>

我想选择h1和p元素(总共3个元素)。有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:3)

(function(){
    var ignoredNodes = {
    "script" : true,
    "noscript" : true
    };

    jQuery("*", "body").filter(
        function(){
        var c;

        if( this.nodeName.toLowerCase() in ignoredNodes ) {
        return false;
        }

        c = this.firstChild;

        return c && c.nodeType === 3 && jQuery.trim(c.data);
        }
    );

    //[<h1>Hi</h1>, <p>blah balah blah</p>, <p>blah blahrg blarg</p>]
})()

答案 1 :(得分:1)

我认为这是在这里得到的回答: How do I select text nodes with jQuery? 使用jquery和纯JavaScript解决方案