[英]document.onclick only execute for a specific div
我在下面的代码:
document.onclick = function () { console.log("Hello"); }
<div class="label-search">Click me</div>
我仅在单击此div class="label-search"
而不在div中添加onclick
时才想执行console.log 。
谢谢。
选择div以将onclick应用于该div使用
document.getElementsByClassName
document.getElementsByClassName('label-search')[0].onclick = function () { console.log("Hello"); }
<div class="label-search">aa</div>
querySelector
document.querySelector('.label-search').onclick = function () { console.log("Hello"); }
<div class='label-search'>aa</div>
您必须将div元素作为目标,以在单击它时执行功能。 您可以使用Document.querySelector()
Document方法
querySelector()
返回文档中与指定选择器或选择器组匹配的第一个Element。 如果找不到匹配项,则返回null
。
document.querySelector('.label-search').onclick = function () { console.log("Hello"); }
<div class="label-search">Click</div>
您需要指定要使用其onclick
属性设置点击功能的元素。 目前,您正在将其添加到整个document
。
在这种情况下,您可以使用:
document.querySelector('.label-search')
获取具有class label-search
类的div,然后使用.onclick
设置其click功能。
请参见下面的工作示例:
document.querySelector('.label-search').onclick = function() { console.log("Hello"); }
<div class="label-search">Label Search</div>
使用此方法,您可以避免将onclick
属性添加到div
您需要为元素分配唯一属性(id): <div class="label-search" id="searchdiv"></div>
并将事件侦听器附加到您的特定元素:
document.querySelector('#clickmediv').addEventListener('click',function(){console.log("Hello!");});
.label-search { width: 100px; height: 100px; background-color: blue; }
<div class="label-search" id="clickmediv">Click me</div>
其他答案使用querySelector
和getElementsByClassName
。 如果要考虑performance
,可以执行以下操作:
let element = document.getElementById("elementToBeClicked"); element.onclick = () => console.log("I was clicked !!!!");
<div id="elementToBeClicked">Click Me Please!</div>
Document方法getElementById()返回一个Element对象,该对象表示其id属性与指定字符串匹配的元素
我建议你使用getElementById
因为速度更快,然后使用queryselector
(查看此看到的性能差异和测试你自己在这里 )。
另外,如果您不知道什么是箭头功能() => console.log("I Was Clicked!!!")
您可以在此处查看一个不错的解释。
您可以通过以下3种方法执行此操作:
用户querySelector:
document.querySelector('。label-search')。onclick = function(){console.log(“ Hello”); }
GetElementByClassName
document.getElementsByClassName('label-search')[0] .onclick = function(){console.log(“ Hello”); }
如果可以用id代替class class =“ label-search”则用id =“ label-search”代替
让element = document.getElementById(“ label-search”); element.onclick =()=> console.log(“ Hello”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.