当前位置: 首页 > 面试题库 >

如何使用document.querySelectorAll遍历所选元素

郭思淼
2023-03-14
问题内容

我正在尝试对通过document.querySelectorAll查询的选定元素进行循环,但是如何?

例如,我使用:

var checkboxes = document.querySelectorAll('.check');
for( i in checkboxes) {
  console.log(checkboxes[i]);
}

输出:

<input id="check-1" class="check" type="checkbox" name="check">
<input id="check-2" class="check" type="checkbox" name="check">
<input id="check-3" class="check" type="checkbox" name="check">
<input id="check-4" class="check" type="checkbox" name="check">
<input id="check-5" class="check" type="checkbox" name="check">
<input id="check-6" class="check" type="checkbox" name="check">
<input id="check-7" class="check" type="checkbox" name="check">
<input id="check-8" class="check" type="checkbox" name="check">
<input id="check-9" class="check" type="checkbox" name="check">
<input id="check-10" class="check" type="checkbox" name="check" checked="">

10
item()
namedItem()

我的问题是,最后此方法返回了3个额外的项目。我该怎么做呢?


问题答案:

for in不建议对数组和类似数组的对象使用循环-您会明白为什么。不仅可以有数字索引项,例如length属性或某些方法,还for in可以遍历所有这些项。使用任一

for (var i = 0, len = checkboxes.length; i < len; i++) {
    //work with checkboxes[i]
}

要么

for (var i = 0, element; element = checkboxes[i]; i++) {
    //work with element
}

如果数组中的某些元素可能是虚假的(不是您的情况),则无法使用第二种方法,但是由于您不需要在[]所有地方都使用表示法,因此第二种方法更具可读性。



 类似资料:
  • 问题内容: 我想遍历XML打印中的所有元素。我的问题是,在标记之后,我一直收到空指针异常,即 这是我的Java代码,用于打印xml文件中的所有元素: XML档案: 预期产量: 问题答案: 遍历所有子项,并用于过滤出文本节点。如果XML中没有其他内容,则剩下的是人员节点。 对于资料下的每个节点(名称,电话,电子邮件,区域,城市) 会在“东西”下提取“名称”节点,为 您提供第一个节点,并在其中获取文本

  • 问题内容: 我需要JavaScript代码来遍历HTML元素中的填充属性。 这个ref表示我可以通过索引访问它,但是没有指定它是否受良好支持并且可以使用(跨浏览器)。 还是其他方式?(不使用任何框架,例如jQuery / Prototype) 问题答案: 这将在IE,Firefox和Chrome中运行(有人可以测试其他人吗?—谢谢@Bryan): 编辑:IE迭代有问题的DOM对象支持的 所有 属性

  • 问题内容: 我正在尝试遍历所有使用forEach 重构的元素。有什么想法为什么在FF,Chrome或IE中不起作用? 问题答案: 您需要使用以下命令将节点列表转换为数组: 或用于循环。 并将ShowResults函数更改为: 为什么我们需要这样做? JavaScript中的某些对象看起来像一个数组,但不是一个。这通常意味着它们具有索引访问和length属性,但是没有任何数组方法。示例包括特殊的变量

  • 问题内容: 我们有一个软件不会删除不再需要的条目。为了了解服务器中有多少数据正在浪费,并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录。这就是我正在使用的: 这是我的错误: 消息116,级别16,状态1,行19当未将EXISTS引入子查询时,只能在选择列表中指定一个表达式。 我意识到我的错误可能与选择该行中的两列有关 但是,我不确定如何才能确保选择下一行。 PS仅用于脚本测试。 如何

  • 我一直在做这把小提琴: https://jsfidle.net/j1vrb7to/165/ 那把小提琴的密码是这样的: HTML: JavaScript: 当用户在文本框中输入值时,我想更新另一个字段的值以显示正在运行的总计。最终,我将需要在我的表单上跟踪20+运行总数。不需要维护20+个函数,是否可以使用单个函数动态计算运行总数?下面是一些伪代码来演示我的想法:

  • 问题内容: 我试图遍历页面上的所有元素,所以我想检查此页面上存在的每个元素是否有特殊类。 那么,我怎么说我要检查每个元素? 问题答案: 您可以将传递给,以便它将返回页面中的所有元素: 请注意,如果可用(可以使用IE9+,IE8中的CSS),可以使用来查找具有特定类的元素。 对于现代浏览器来说,这无疑会加速事情的发展。 浏览器现在在NodeList上支持foreach。这意味着您可以直接循环元素,而