javascript - JavaScript .closest 返回 null
问题描述
我有以下简单的布局,我无法更改。我正在尝试使用 JavaScript 来获取extra
最接近按下的按钮的元素
在另一个问题的帮助下,我能够让这preventDefault
部分工作,但现在我正在努力closest
<div class="buttons">
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">64736</div>
</div>
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">5446</div>
</div>
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">78667</div>
</div>
</div>
document.querySelector('.myButton').addEventListener('click', myFunction);
function myFunction() {
event.preventDefault();
close = this.closest(".extra");
console.log(close)
}
但是null
当我按下按钮时,这给了我,我哪里出错了?
解决方案
closest
和的组合querySelector
可以使用:
document.querySelectorAll('.myButton').forEach(function(button) {
button.addEventListener('click', myFunction);
});
function myFunction(evt) {
evt.preventDefault();
var closest = evt.currentTarget.closest(".button").querySelector('.extra');
console.log(closest)
}
<div class="buttons">
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">64736</div>
</div>
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">5446</div>
</div>
<div class="button">
<button class="myButton">Click Me</button>
<div class="extra">78667</div>
</div>
</div>
更多信息:
推荐阅读
- c - C 中的发现服务器(可能是带有结构的数据库?)
- html - 使用引导程序与内联样式有何不同?
- reactjs - 按钮中的标记图标导致反应中的 event.target.value 问题
- r - 使用 H2oBinomialModel 预测栅格堆栈中的结果
- d3.js - D3还是其他数据流动画?
- java - 当文件存在于多个包中时,Spring Boot URL 映射不起作用
- sql-server - 选择语句从存储过程中返回值
- c++ - 如何更改默认的 C/C++ gnu readline 换行符?
- google-chrome - 从 Chrome 扩展程序中删除 USB 权限
- node.js - 如何解决 react js 安装问题