Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:从对象中删除空项_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:从对象中删除空项

Javascript jQuery:从对象中删除空项,javascript,jquery,Javascript,Jquery,我正在访问维基百科的api,并通过ajax获取关于某个主题的信息。api返回一个我正在解析的对象,如下所示: wikipage = data.parse.text['*'].children('p:lt(3)'); wikipage.find('sup').remove(); 然而,由于维基百科使用了非常松散的格式,我发现我必须抓取返回的前3段以获得足够的信息。有时,维基百科会返回空的第一段,以及填充的第二段和第三段。其他时间,1号和2号为空,3号为满。偶尔,这三本书都充满了文字 我需要完成的

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

wikipage = data.parse.text['*'].children('p:lt(3)');
wikipage.find('sup').remove();
然而,由于维基百科使用了非常松散的格式,我发现我必须抓取返回的前3段以获得足够的信息。有时,维基百科会返回空的第一段,以及填充的第二段和第三段。其他时间,1号和2号为空,3号为满。偶尔,这三本书都充满了文字

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

我尝试了以下方法:

wikipage.find('p:empty').remove();
return wikipage.get(0);
但这是行不通的。它不是删除空段落

我是jQuery的新手,马上就要脱发了,哈哈!请帮忙

试试看:

wikipage.find("p").each(function () {
    var $this = $(this);
    if ($this.html().trim() == "") {
        $this.remove();
    }
});
您还可以使用选择器:

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

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

试试看:

wikipage.find("p").each(function () {
    var $this = $(this);
    if ($this.html().trim() == "") {
        $this.remove();
    }
});
您还可以使用选择器:

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

});

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

p
标记是否完全为空,或者它们是否包含实际上是空文本节点的空白?marteljn,这实际上取决于特定文章的格式。因此为了安全起见,可能还需要.trim()任何可能的空白。标签是否完全为空,或者它们是否包含实际上是空文本节点的空白?marteljn,这实际上取决于特定文章的格式。所以为了安全起见,可能还需要.trim()任何可能的空白。ianpgall,就是这样。非常感谢。仍在努力处理这一切,尤其是在美元的性质不断变化的情况下。谢谢你的帮助,没问题!我将$(this)存储在$this中的唯一原因是为了保存将“this”放入jQuery对象两次的工作。但这一切都有意义吗?我想是的。我不明白为什么wikipage(它是一个对象)可以用.html()方法访问。我相信wikipage是一个DOM元素的jQuery对象(应该是一个数组)(如果您查看wikipage的原始选择器)。从那里,您可以使用jQuery方法和诸如此类的方法,例如.each()。一旦为wikipage(如wikipage[0])编制索引或使用wikipage.get(0),您就拥有了特定的DOM元素,而不是所有匹配的DOM元素的集合。希望有帮助!伊恩,就是这样。非常感谢。仍在努力处理这一切,尤其是在美元的性质不断变化的情况下。谢谢你的帮助,没问题!我将$(this)存储在$this中的唯一原因是为了保存将“this”放入jQuery对象两次的工作。但这一切都有意义吗?我想是的。我不明白为什么wikipage(它是一个对象)可以用.html()方法访问。我相信wikipage是一个DOM元素的jQuery对象(应该是一个数组)(如果您查看wikipage的原始选择器)。从那里,您可以使用jQuery方法和诸如此类的方法,例如.each()。一旦为wikipage(如wikipage[0])编制索引或使用wikipage.get(0),您就拥有了特定的DOM元素,而不是所有匹配的DOM元素的集合。希望有帮助!