JS通过event.target获取clicked元素

时间:2019-11-26 15:44:42

标签: javascript

我正在尝试使用JavaScript来获取被点击元素的信息。

这里是jsFiddle

下面是我的代码。

python manage.py migrate --list
let div = document.querySelector('div')
div.addEventListener('click', function(event) {
  // how to get the clicked p tag here?
  // this?
  // event.target.currentTarget?
})

如何使用<div> <p>text 1</p> <p>text 2</p> </div>获取元素的信息?

答案:this 谢谢Juan Mendes

4 个答案:

答案 0 :(得分:1)

正如我在评论event.target中所写的那样。但是,如果您真的只想要p标签,则应该小心。如果在包装div中使用a标签或其他子元素,则可能还会收到其他标签。

我建议实际上将事件侦听器直接添加到p标签中。

答案 1 :(得分:1)

欢迎使用StackOverflow!

e.target应该为您提供了用于生成事件的确切元素。

e.currentTarget将为您提供元素     该事件是在函数     被叫(从e.target起泡之后)

div.addEventListener('click', (e) => {
console.log(e.target) // the p that was clicked
console.log(e.currentTarget) // this div
})

答案 2 :(得分:0)

最好将事件侦听器附加到每个var pathString = './test/JFwZCrdEojAr09ajT8EPZmo.jpg'; const buffer = fs.readFileSync(pathString,{ encoding: 'utf8' }); 元素上,以防在p元素本身中嵌套其他子元素。

p

答案 3 :(得分:0)

如果您使用event.target,则应该获得单击的特定p标签。

但是,如果您确实要使用this,则最好将onclick事件处理程序附加到p标签而不是父标签。

就这样。

let ps = document.getElementsByTagName('p')

for (var i = 0; i < ps.length; ++i){
    ps[i].addEventListener('click', function(event){
        // how to get the clicked p tag here?
        alert(this.innerText) //or whatever action you want to do with `this`
   })
}