Javascript document.onclick仅对特定div执行
我有以下代码:Javascript document.onclick仅对特定div执行,javascript,html,Javascript,Html,我有以下代码: document.onclick=函数(){ console.log(“你好”); } 点击我 您必须以div元素为目标,在单击它时执行函数。你可以用 Document方法querySelector()返回文档中与指定选择器或选择器组匹配的第一个元素。如果未找到匹配项,则返回null document.querySelector('.label search').onclick=function(){ console.log(“你好”); } 点击 您需要为元素指定唯一属性(
document.onclick=函数(){
console.log(“你好”);
}
点击我
您必须以div元素为目标,在单击它时执行函数。你可以用
Document方法querySelector()
返回文档中与指定选择器或选择器组匹配的第一个元素。如果未找到匹配项,则返回null
document.querySelector('.label search').onclick=function(){
console.log(“你好”);
}
点击
您需要为元素指定唯一属性(id):
并将事件侦听器附加到特定元素:
document.querySelector('#clickmediv').addEventListener('click',function(){console.log(“Hello!”);})代码>
。标签搜索{
宽度:100px;
高度:100px;
背景颜色:蓝色;
}
单击我
您需要指定要设置使用其onclick属性的单击功能的元素。此时,您正在将其添加到整个文档中
在这种情况下,您可以使用:
document.querySelector('.label search')
要获取具有类标签搜索功能的div,请使用.onclick
设置其单击功能
请参见下面的工作示例:
document.querySelector('.label search').onclick=function(){
console.log(“你好”);
}
Label Search
使用的其他答案querySelector
和getElementsByClassName
。如果要考虑性能,可以执行以下操作:
let element=document.getElementById(“elementToBeClicked”);
element.onclick=()=>console.log(“我被点击了!!!!”)代码>
请点击我代码>选择要对该div应用onclick的div
使用
document.getElementsByClassName('label-search')[0]。onclick=function(){
console.log(“你好”);
}
aa
您可以通过以下三种方法完成此操作:
用户查询选择器:
document.querySelector('.label search')。onclick=function(){
console.log(“你好”);
}
GetElementByClassName
document.getElementsByClassName('label-search')[0]。onclick=function(){
console.log(“你好”);
}
如果可以用id替换类
class=“标签搜索”替换为id=“标签搜索”
let element=document.getElementById(“标签搜索”);
element.onclick=()=>console.log(“Hello”)
它起作用了。问题出在哪里?@DaFois把问题再读一遍。你说的“没有添加onclick-in div”是什么意思?我知道,但我有几个div,我想用这个,但只用于这个div@IslamElshobokshy还是不明白。。。div上有onclich attrquerySelector
在这种情况下是没有意义的。只要在OP中使用getElementById
@Oen44就行了没有id,他在使用一个类。为什么?它工作得慢吗?与任何类型的选择器相比,我更喜欢它作为一个通用包装器。@IslamElshobokshy另一方面,他说“只有当我单击这个div时”,所以他可能在同一页上有同一类的其他div。除了querySelector
在OP的代码中没有损坏。你的类比毫无意义。坏例子,最好使用querySelector
或id
和getElementById
。他可能有同一类的其他div(高于该类,也低于该类),如果你选择第二种方式,而只选择第一种方式,所有div都将以相同的方式处理(不一定,根据需要)如果你走第一条路,@IslamElshobokshy我只是提出一个替代方案,并解释为什么我认为更好。我知道那是在上课。但是使用queryselector
的解决方案已经得到了这样的回答。stackoverflow的意义是什么?不是为了分享知识吗?那条reddit线索是3年前的。与此同时,JS引擎也有了巨大的改进。是的@Andy,但是你可以在更新后的浏览器中进行测试,测试结果与reddit发布的相同out@ygorbunkov事实上,不完全是这样。单击时,它将在控制台中为第一个div
打印“hello”,并使用classlabel search
。并非所有具有类标签搜索的div
document.getElementsByClassName