选择非空元素

时间:2016-02-04 10:59:44

标签: jquery

假设我们有以下标记:

<p>
    foo
</p>
<p>
</p>
<p>
    bar
</p>
<p>
</p>

我们想要选择段落,其中包含一些可供用户看到的内容。是否有方式如何直接使用某个选择器实现此目标?还是必须循环使用它们?

目前我坚持这个:

var paragraphs = $('p');
var nonEmptyParagraphs = [];
var curP;
for(var i=0; i<paragraphs.length; i++) {
    curP = $(paragraphs[i]);
    if(curP.text().length > 0) {
        nonEmptyParagraphs.push(curP);
    }
}

感谢您的建议!

2 个答案:

答案 0 :(得分:2)

您可以选择非空,请执行以下操作。

$('p').filter(function () {
    if ($(this).text().trim())
        return this;
})

答案 1 :(得分:0)

您忘记了javascript trim()函数以删除<p>元素

中的空白区域
    if(curP.text().trim().length > 0) {
       nonEmptyParagraphs.push(curP);
    }

http://jsfiddle.net/qYdwR/2606/