2012-02-21 139 views
0

我试图通过一个dom元素的数组进行循环,如果它匹配一个特定的条件,只返回dom元素。在下面的情况下,如果id属性等于“0”的值并且它具有带有类名记录的子元素。 我已经尝试了下面的代码,但它始终返回元素0,即使它没有带有类记录的子代。为什么地图没有返回正确的结果

var el = shows.map(function(index, element) { 
    if (this.id == "0" && $(element).children('.record')) return this; 
}); 
+0

您可以发布您HMTL? – elclanrs 2012-02-21 21:41:58

回答

0

变化$(element).children('.record')变为$(element).children('.record').length

如果jQuery没有找到任何元素,它将返回一个空数组,它将JavaScript转换为true

+0

感谢火箭。是否有一种方法可以在循环达到真值时停止。地图,过滤器,并且每个元素都会遍历所有元素,即使它找到与我的标准相匹配的元素。 – Chapsterj 2012-02-21 21:52:51

+0

@Chapsterj:你可以使用'.each'。它不会返回一个值,因此您必须将变量设置为找到的值。如果你从回调函数返回false,它将打破循环。 – 2012-02-21 21:56:25

+0

谢谢所以没有方法在jquery中会返回一个元素,并停止循环,当它发现元素返回你说的? – Chapsterj 2012-02-21 22:00:28

0

尝试在不希望映射数组中的项目的情况下特定返回null。

var el = shows.map(function(index, element) { 
    if (this.id == "0" && $(element).children('.record')) 
     return this; 
    else 
     return null; 
}); 
0

尝试使用jQuery

$(element).filter(function(key, value){ 
    return $(value).children('.record').length>0; 
}); 
相关问题