javascript - 如何向页面中的所有元素添加多个 onclick 事件
问题描述
我有一个这样的 HTML 代码。
<a onclick="prompt('Complete','Lorem');">Lorem</a>
<a onclick="prompt('Complete','ipsum');">ipsum</a>
<a onclick="prompt('Complete','dolor');">dolor</a>
<a onclick="prompt('Complete','sit');">sit</a>
<a onclick="prompt('Complete','amet');">amet</a>
...
我想缩小 HTML 代码,如下所示:<a>Lorem</a><a>ipsum</a>
How can I add onclick prompt event to all clickable elements in a page? 如上面的代码。可能吗?
解决方案
使用 JavaScript,您必须使用循环将点击处理程序附加到每个项目。
function userPrompt(event){
prompt("Complete " + event.target.innerText);
}
document.querySelectorAll('a').forEach(item => item.addEventListener('click', userPrompt));
a {
cursor: pointer
}
<a>Lorem</a>
<a>ipsum</a>
<a>dolor</a>
<a>sit</a>
<a>amet</a>
JQuery 有一个简单的方法来实现这一点。
function userPrompt(event){
prompt("Complete " + event.target.innerText);
}
$('a').on('click', userPrompt);
a {
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a>Lorem</a>
<a>ipsum</a>
<a>dolor</a>
<a>sit</a>
<a>amet</a>
推荐阅读
- typescript - Typescript - 我可以动态设置函数的返回类型吗?
- reactjs - 带有 React Native 钩子的上下文在异步函数上返回空对象/数组
- python - 使用 Pillow 保存图像而不覆盖已保存的图像
- python - 找不到页面 (404) 添加评论
- html - 位置:粘性风格无法按预期工作
- python - JSON开头的随机字符
- javascript - 在 JavaScript 文件中使用 json 数组来加载、保存、更新数据?
- vue.js - 更新 Vue.js 中组件的属性
- xcode - AppleScript 将文本插入 Microsoft Word 文档
- matplotlib - 使 2D 图像的 3D 图形相互“投影信息”