[英]How can i get all elements with a selector attribute with VanillaJS?
I'd like to get all elements with a specific data-
attribute, but I need to manipulate they individually. 我想让所有元素都具有特定的
data-
attribute属性,但是我需要单独操作它们。 Check my code: 检查我的代码:
HTML 的HTML
<div data-something></div>
<div data-something></div>
JavaScript 的JavaScript
document.querySelectorAll("[data-something]").onclick = function() {
...
}
You are getting all of them, but that means you're getting a nodeList , an array-like object containing all the elements that has to be iterated over 您将获得所有这些元素,但这意味着您将获得一个nodeList ,这是一个类似数组的对象,其中包含必须迭代的所有元素
var elements = document.querySelectorAll("[data-something]");
for (var i=0; i<elements.length; i++) {
elements[i].addEventListener('click', function() {
...
}, false);
}
Below is how you can get all elements with a selector attribute and create an onclick listener for each element. 下面是如何获取具有选择器属性的所有元素并为每个元素创建onclick侦听器的方法。
Run the snippet, and click the "click me -- A" or "click me -- B" links for a demo: 运行代码段,然后单击“单击我-A”或“单击我-B”链接进行演示:
var elements = document.querySelectorAll('[data-something]'); Array.prototype.forEach.call(elements, function (element) { element.onclick = function () { alert(element.innerHTML); }; });
<div data-something>click me -- A</div> <div data-something>click me -- B</div>
You can also use .addEventListener('click', someFunction)
instead of .onclick = someFunction
. 您也可以使用
.addEventListener('click', someFunction)
代替.onclick = someFunction
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.