javascript - 等效于 Javascript 中的 jQuery 代码

标签 javascript jquery

这是我的 jQuery 代码

$('p').click(function(){
    alert("click successful!");
});

这是我能想到的 JS 代码

window.onload = function() {
    var para = document.getElementsByTagName('p');
    for(var i = 0; i < para.length; i++) {
        para[i].addEventListener('click',function(){
            alert("click successful!");
        });
    }
}

Javascript 代码太庞大了,有没有办法让我可以通过名称选择标签并将代码编写为 -

"If any 'p' tag is clicked, alert('click successful')"

而不是遍历所有 <p></p>标签? 使用标签名称的任何替代方法?

最佳答案

您可以使用事件委托(delegate) - 将点击处理程序添加到更高级别的元素并检查 event.target

document.body.addEventListener("click", function(e) {
    if (e.target.tagName.toLowerCase() == "p") alert("click succeeded");
});

演示:http://jsfiddle.net/jdkr3sch/

关于javascript - 等效于 Javascript 中的 jQuery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330596/

相关文章:

javascript - 单击加载 Accordian 面板而不是页面加载

javascript - JSON 中位置 0 处的意外标记 u 不适用于异步

javascript - 控制台日志并从多个 switch 语句添加值

jquery - 为什么 jquery 动画会在 bootstrap 中弄乱我的 nav flexbox 属性?

javascript - 当选择文件时更改标签内容 jQuery

javascript - 是否可以在不借助 Javascript 的情况下做到这一点?

javascript - NodeJS - ES6 - 扩展类错误以返回我自己的类型作为错误响应的一部分

javascript - Android 上 jQuery 脚本中的错误

javascript - 根据更改选择获取替代数据值

jquery - 在循环中生成文本和订单号