为什么不能'在这种情况下,我将document.getElementsByTagName和.addEventLi
Why cant't I combine document.getElementsByTagName and .addEventListener in this case?
我正在制作一个电源点,但我被卡住了。当单击一个<input>
时,我想更改一个变量。我试过这个:
HTML:
<input size="40">
<input size="40">
JAVASCRIPT:
inputClicked = false;
document.getElementsByTagName("INPUT").addEventListener("click", function() {
inputClicked = true;
});
var inputClicked = false;
document.getElementsByTagName("INPUT").addEventListener("click", function() {
inputClicked = true;
alert(inputClicked);
});
<input>
<input>
如果你运行这个隐藏的片段,你会看到,当点击<input>
时,不会弹出警报。plz显示我的错误,或者其他方法…
使用focus
而不是click
的好处是可以使用tab键。
document.querySelector('input').addEventListener('focus', function (event) {
console.log(event.target)
}, false)
如果您要处理多个输入标签:
const inputs = Array.from(document.querySelectorAll('input'))
inputs.forEach(function (input) {
input.addEventListener('focus', function (event) {
console.log(event)
}, false)
})
说明:document.querySelectorAll('input')
返回的NodeList不是数组。Array.from()将NodeList转换为数组。
因为通过标记名称可以获得一个元素数组,所以需要遍历该数组并在每个元素上添加事件。如果使用jquery,则可以同时在多个元素上分配事件。
你可以这样做:
javascript:
var elements = document.getElementsByTagName("input")
for (i = 0;i<elements.length; i++){
elements[i].addEventListener("click", function() {
inputClicked = true;
});
}
jQuery:
$("input").click(function(){
inputClicked = true;
});
相关文章:
- 我将如何将Base的原型分配给User
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 我将如何将其更改为循环和数组表示法
- .value返回字符串,直到我将其保存到变量
- 为什么可以't我将数据从c#发送到asp.net中的Javascript文件
- 当我将子项从一个父项移动/复制到另一个父级时,如何重新计算显示
- Jquery面板滑块赢得't在我将其CSS从右向左更改后关闭
- JS/jquery:我将如何遍历HTML中的每个图像
- 为什么可以'我将谷歌地图getCurrentPosition与地点搜索API相结合
- 我将如何在 for 循环中执行此操作
- 如果我将宽度调整为另一个值,找出我的图像的高度
- 使用document.cookie将客户端javascript转换为节点模块
- 当我将参数设置为对象时,JavaScript返回TypeError
- 我正在使用php includes来构建一个多页面网站.使用jquery,我将如何添加一个类"活动的”;添加到
- 我将如何使这个小的jQuery滑块向右滑动
- 我将如何从对象数组中获取特定点
- 我将如何夸大(延长)使用javascript下载文件所需的时间
- 我将如何在将数据发布到 php 脚本的 javascript 脚本中输入变量
- $(document).ready在我将jquery库放在body之前时不起作用
- 为什么不能'在这种情况下,我将document.getElementsByTagName和.addEventLi