Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onclick函数对输入元素不起作用_Javascript - Fatal编程技术网

Javascript Onclick函数对输入元素不起作用

Javascript Onclick函数对输入元素不起作用,javascript,Javascript,我正在尝试使用下面的代码片段“侦听”任何输入字段上的单击 document.getElementsByTagName('input').onclick = function(){ console.log('clicked an input field'); } 但是当我点击输入字段时,什么也没有发生 我仔细检查了一下,以确保使用此代码段使用getElementsByTagName检测到输入字段,它显示了200个对象 elems = document.getElementsByT

我正在尝试使用下面的代码片段“侦听”任何输入字段上的单击

document.getElementsByTagName('input').onclick = function(){
    console.log('clicked an input field');
}
但是当我点击输入字段时,什么也没有发生

我仔细检查了一下,以确保使用此代码段使用getElementsByTagName检测到输入字段,它显示了200个对象

    elems = document.getElementsByTagName('input');
    console.dir(elems);
控制台屏幕截图:

这有没有一个不起作用的原因?我尝试将代码移动到不同的部分,以确保文档在运行时加载

纯javascript,不使用jquery,返回一个html集合。所以您需要检索单个元素,然后将事件附加到它

[…document.getElementsByTagName('input')].forEach((项)=>{
item.addEventListener('单击',函数()){
log('单击输入字段');
})

})
您确定不想改为onchange吗?是否确保在加载页面之前不执行脚本?执行脚本时,DOM树中的元素是否已经存在?@chriss我相信是这样,因为我将它放在window.onload中,并且它在elems=document.getElementsByTagName('input')的正下方运行;它返回200个元素,所以我认为它们是there@EugenSunic是的,我想改变背景颜色,而不管字段的值。这个问题有点让人困惑,你知道你得到了一个集合,但我想你也知道,你不能点击它。谢谢,奇怪的是我得到了“未捕获的SyntaxError:意外标记“…”您正在使用哪个浏览器?浏览器上的chrome版本81.0.4044.122”mac@RobertSinclair请参阅更新的答案和替代方法