为什么属性.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
返回:选项列表
答案 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}}会有同样的结果(但它会很多更快,而不是通常很重要)。