有没有办法加入2个调用document.getElementsByTagName返回的2个NodeLists?
说,我有以下代码
var inputs = documentElement.getElementsByTagName('input'); var selects = document.getElementsByTagName('select');
我想循环结果.有可能在一个循环中吗?
先感谢您!
好像你可以使用相同的Array.prototype.slice.call,它使args数组类对象成为一个数组.(见这里)
var inputs = document.getElementsByTagName('input'); var selects = document.getElementsByTagName('select'); inputs = Array.prototype.slice.call(inputs); selects = Array.prototype.slice.call(selects); var res = inputs.concat(selects); alert(res.length);
你不能加入它们,但你仍然可以在一个循环中顺序循环它们,如下所示:
for ( var i = 0; i < inputs.length + selects.length; i++ ) { var element = ( i < inputs.length ) ? inputs[i] : selects[i-inputs.length]; }
或者,使用jQuery,您可以一次性选择它们:
$('input, select')
document.querySelectorAll("input, select");