jQuery:从对象中删除空项

时间:2012-06-22 03:48:01

标签: javascript jquery

我正在访问维基百科的api并通过ajax获取有关主题的信息。 api返回一个我正在解析的对象:

wikipage = data.parse.text['*'].children('p:lt(3)');
wikipage.find('sup').remove();

但是,因为维基百科使用非常宽松的格式,我发现我必须抓住返回的前3个段落才能获得足够的信息。有时,维基百科将返回一个空的第一段,以及一个填充的第二和第三段。其他时候,第一和第二是空的,第三是满的。偶尔所有3个都充满了文字。

我需要完成的是从wikipage对象中删除任何空的段落值,然后将wikipage =设为对象中的第一个p值。

我尝试了以下内容:

wikipage.find('p:empty').remove();
return wikipage.get(0);

但这不起作用。它不是删除空段落。

我是jQuery的新手,我即将拔掉头发,哈哈!请帮忙!

1 个答案:

答案 0 :(得分:1)

尝试:

wikipage.find("p").each(function () {
    var $this = $(this);
    if ($this.html().trim() == "") {
        $this.remove();
    }
});

您也可以使用选择器:

$("p", wikipage).each(function () {

});

但我不确定这种情况的区别。链接时,使用.find()是有意义的,但这个选择在开头,所以我不知道它们有多么不同。我确定没关系,只是想指出来!