当我在从页面中选择一些元素时,不小心使用了
querySelector
而不是querySelectorAll
,我发现了一些有趣的事情。通常,在查询后,我会直接将静态节点列表转换为数组。但是,由于querySelector
只返回它找到的第一个匹配节点,而不是一个NodeList
,因此我的脚本尝试将select
节点转换为数组。它并没有返回一个空数组,而是返回了select
元素的子元素。
为什么将select
元素转换为数组会返回子节点? 这对其他元素(如div
)无效:
var selectParent = document.querySelector('.selectParent');
var selectArray = Array.from(selectParent);
console.log(selectArray);
var divParent = document.querySelector('.divParent');
var divArray = Array.from(divParent);
console.log(divArray);
<select class="selectParent">
<option>Option 1</option>
<option>Option 2</option>
</select>
<div class="divParent">
<div>Div 1</div>
<div>Div 2</div>
</div>
[].push(selectParent)
。 - Whip[selectParent]
。 - T.J. Crowder