2012-02-21 97 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; 
}); 
相關問題