Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 document.onclick仅对特定div执行_Javascript_Html - Fatal编程技术网

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 attr
    querySelector
    在这种情况下是没有意义的。只要在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”,并使用class
    label search
    。并非所有具有类
    标签搜索的div
    
    document.getElementsByClassName