首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript NodeList

JavaScript NodeList
EN

Stack Overflow用户
提问于 2009-05-27 09:17:25
回答 11查看 28.9K关注 0票数 27

有没有办法加入2次document.getElementsByTagName调用返回的2次NodeLists?

比如说,我有以下代码

代码语言:javascript
复制
var inputs = documentElement.getElementsByTagName('input');
var selects = document.getElementsByTagName('select');

我想遍历结果。可以在一个循环中实现吗?

提前谢谢你!

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-05-27 10:22:12

看起来您可以使用相同的Array.prototype.slice.call使args类似数组的对象变成一个数组。(See here)

代码语言:javascript
复制
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);
票数 45
EN

Stack Overflow用户

发布于 2009-05-27 09:54:34

您不能连接它们,但您仍然可以在一个循环中依次循环它们,如下所示:

代码语言:javascript
复制
for ( var i = 0; i < inputs.length + selects.length; i++ ) {
    var element = ( i < inputs.length ) ? inputs[i] : selects[i-inputs.length];
}

或者,使用jQuery,您可以一次性将它们全部选中:

代码语言:javascript
复制
$('input, select')
票数 20
EN

Stack Overflow用户

发布于 2010-02-23 19:36:37

代码语言:javascript
复制
document.querySelectorAll("input, select"); 
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/914783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档