0

table我已经使用 构建了一个匹配特定条件的元素数组querySelectorAll(),但我想有条件地创建一个新的、单独的数组,其中包含每个元素的第一个子元素的第一个子元素。
但是,我不确定如何执行此操作。我的数组目前看起来像这样:

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

有没有办法让我在每个元素上运行querySelector()querySelectorAll()匹配我想要使用的内容:first-child:first-child

4

1 回答 1

4

.map函数允许您从另一个数组构建一个新数组。

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

如果您arr实际上不是数组,请执行此操作。

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

请注意,如果这些恰好是第一个孩子,这将获得文本节点。如果您只想要元素,请使用.firstElementChild而不是.firstChild.

于 2012-09-22T23:41:15.263 回答