javascript - QuerySelectorAll 返回超过预期

标签 javascript html css dom

<div class="main">
<p>I don't want this</p>
<div class="sub">I want this</div>
</div>

<div class="main">
    <p>I don't want this</p>
    <div class="sub">I want this</div>
</div>

<div class="main">
    <p>I don't want this</p>
    <div class="sub second">I don't want this</div>
</div>

我正在尝试使用 QuerySelectorAll 返回嵌套在“主”div 中的所有“子”div。我目前正在使用

document.querySelectorAll(".main .sub")

但这会返回类名以“sub”开头的所有 div,因此它还会返回类名为“sub second”或“sub third”的 div 是否可以只选择类为“sub”的 div。

我也想点击使用后的结果

document.querySelectorAll(".main .sub").click()

但这会返回一个错误,我认为这是因为

.click()

一次只能处理一个对象。是否可以选择所有类名为“sub”的 div,然后使用类似于

的内容单击它们
.click()

最佳答案

你可以使用这个选择器:

document.querySelectorAll(".main [class='sub']")

您可以按如下方式迭代结果项:

var divs = document.querySelectorAll(".main [class='sub']");

[].forEach.call(divs, function(div) {
  // do whatever
  div.style.color = "red";
});
<div class="main">
<p>I don't want this</p>
<div class="sub">I want this</div>
</div>

<div class="main">
    <p>I don't want this</p>
    <div class="sub">I want this</div>
</div>

<div class="main">
    <p>I don't want this</p>
    <div class="sub second">I don't want this</div>
</div>

关于javascript - QuerySelectorAll 返回超过预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37944262/

相关文章:

javascript - 使用 JavaScript 根据设备屏幕尺寸有条件地加载广告代码

javascript | Android 的点击 + 鼠标移动

javascript:显示隐藏文本适当的宽度

html - 链接带有背景图像和悬停效果的 div

javascript - 联系表单 7 onclick 事件

javascript - 如何从给定字符串中删除带有额外分隔符的单词?

javascript - 深度神经网络 : dnnConfirm needs two clicks to show

css - 自定义 Facebook CSS(时尚)

html - 如何让包裹在 anchor 中的定义列表水平显示

html - Angular2 设置高度为全屏