2012-09-22 127 views
0

我已經使用querySelectorAll()構建了一個匹配特定標準的table元素數組,但我想有條件地創建一個包含第一個子元素這些元素中的每一個的第一個孩子。
但是,我不知道如何做到這一點。 我陣列目前看起來是這樣的:獲取數組中每個元素的第一個孩子的第一個孩子

var arr = [ 
    <table class="matchedCriterion">…</table>, 
    <table class="matchedCriterion">…</table> 
]; 

有我跑每個元素querySelector()querySelectorAll()的方式,匹配我想用:first-child:first-child

+0

您使用[E4X](https://developer.mozilla.org/en-US/docs/E4X/Processing_XML_with_E4X)嗎? –

+0

@MikeSamuel我不這麼認爲。 – urschrei

+0

好的。因此,嵌入在您的JS代碼示例中的'

並不意味着被解釋爲字面JS代碼。 –

回答

4

.map功能可以讓您建立從一個新的Array什麼另一個陣列。

var newarr = arr.map(function(el) { return el.firstChild.firstChild; }); 

如果arr實際上不是一個數組,然後做到這一點。

var newarr = [].map.call(arr, function(el) { return el.firstChild.firstChild; }); 

要知道,這將讓文本節點如果這些恰好是第一個孩子。如果您只需要元素,請使用.firstElementChild而不是.firstChild

+0

對於第二部分,還有另一種方法:'Array.from(arr).map(callback)',它與糖語法相同。 –

相關問題