为什么方法.options不适用于select

时间:2015-03-26 09:15:35

标签: javascript select

为什么属性.options对DOM方法querySelectorAll选择的select不起作用,但只能使用getElementById?我需要使用querySelector。

var sel = document.querySelectorAll('.current .od select #mySelect');
sel.options

return:undefined

var sel = document.getElementById('mySelect');
sel.options

返回:选项列表

1 个答案:

答案 0 :(得分:0)

querySelectorAll会返回NodeList,而不是单个元素,NodeList个实例不会拥有options属性。

要获得单个元素,请使用querySelector(否"全部"):

var sel = document.querySelector('.current .od select #mySelect');
sel.options

当然,如果在某些时候你想要处理一个列表,请将其编入索引:

var sel = document.querySelectorAll('select');
sel[0].options
// ^^^

旁注:如果null元素位于文档的不同部分,则除非您想要返回#mySelect,否则根本没有任何理由可以使用document.querySelector('#mySelect')元素。后代选择器。只有document.getElementById('mySelect') {{1}}会产生相同的结果,{{1}}会有同样的结果(但它会很多更快,而不是通常很重要)。