我正在尝试在没有 jQuery 的情况下在我的网站上实现点击事件。
我想定位多个选择器。
在 jQuery 中,这可以通过简单地用逗号分隔项目来完成,如下所示。
jQuery(document).on('click', '#test1, #test2', function (event) {
alert($(this).text());
});
如何用纯 JavaScript 轻松完成此操作?
我已经尝试过下面的方法,但似乎应该有一种更简单的方法,特别是如果我想要的不仅仅是单击时发生的警报?我想要定位多个特定选择器,例如不是所有 div
var test1 = document.getElementById('test1');
var test2 = document.getElementById('test2');
if (test1.addEventListener || test2.addEventListener) {
test1.addEventListener('click', function(event) {
alert(this.innerHTML);
});
test2.addEventListener('click', function(event) {
alert(this.innerHTML);
});
/* this only works when you click on test2
(test1,test2).addEventListener('click', function(event) {
alert(this.innerHTML);
});
*/
/* this only works when you click on test2
(test1.addEventListener),(test2.addEventListener)('click', function(event) {
alert(this.innerHTML);
});
*/
}
var test1 = document.getElementById('test1');
var test2 = document.getElementById('test2');
if (test1.addEventListener || test2.addEventListener) {
test1.addEventListener('click', function(event) {
alert(this.innerHTML);
});
test2.addEventListener('click', function(event) {
alert(this.innerHTML);
});
}
<div id="test1">test1</div>
<div id="test2">test2</div>
有没有办法用逗号分隔选择器,或者在运行代码之前设置所有选择器,就像使用 jQuery 一样?
这基本上是等价的代码,减去所有浏览器检查:
document.body.addEventListener("click", function(e) { //bind event to the document
var targ = e.target; //get what was clicked on
var id = targ.id; //grab the id
if (["test1","test2"].indexOf(id)!==-1){ //see if it is one of the ids
alert(targ.textContent); //show the text
}
}, false);
<div id="test1">test 1</div>
<div id="test2">test 2</div>
<div id="test3">test 3</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)