2017-05-30 49 views
0

我想单击它可以获得<div><a>的ID。请帮助...如何获得div或锚点标识的id,单击时,使用纯javascript

<div class="reccl" id="allact"><a href="#" class="a" id="b">All Activities</a></div> 
<div class="reccl" id="lgns"><a href="#" class="a" id="bb">Logins</a></div> 
<div class="reccl" id="dwld"><a href="#" class="a" id="bb">Download</a></div> 

javascript代码:

var a = document.getElementsByClassName('a'); 
    for(var b = 0; b <= a.length; b++){ 
     a[i].onclick = function(e){ 
      alert("id clicked"); 
     } 
    } 

代码在这里:http://jsfiddle:%20http://jsfiddle.net/mm07p5rz/

+0

要么通过什么或标签? – Ray

回答

3

刚刚获得click事件的target对象的id财产。顺便说一句,id s应该在文档中是唯一的。

这将让任何元素的id点击页面上:

document.addEventListener("click", function(evt){ 
 
    console.log(evt.target.id); 
 
});
<div class="reccl" id="allact"><a href="#" class="a" id="b">All Activities</a></div> 
 
<div class="reccl" id="lgns"><a href="#" class="a" id="bb">Logins</a></div> 
 
<div class="reccl" id="dwld"><a href="#" class="a" id="bbb">Download</a></div>

这将让被点击任何<a>元素的id。您可以过滤特定的元素,你喜欢的任何方式,但这一进程,以获得id是一样的:

// Get just and <a> elements 
 
var anchors = document.querySelectorAll("a"); 
 

 
// Set up a click event listener for each one 
 
for(var i = 0; i < anchors.length; i++){ 
 
    anchors[i].addEventListener("click", function(evt){ 
 
    console.log(evt.target.id); 
 
    }); 
 
}
<div class="reccl" id="allact"><a href="#" class="a" id="b">All Activities</a></div> 
 
<div class="reccl" id="lgns"><a href="#" class="a" id="bb">Logins</a></div> 
 
<div class="reccl" id="dwld"><a href="#" class="a" id="bbb">Download</a></div>

+0

'.addEventListener()'是将事件处理函数附加到DOM对象事件的W3C DOM事件API标准。 'onclick','onXyz'可以工作,但已经过时,并且与'.addEventListener()'相比有缺点。 –

+0

感谢人...正是我在找什么......我在那里想念addeventlistener的人,,,干杯队友... – mindre

0

我编辑源代码

var a = document.getElementsByClassName('reccl'); 
 
for (var b = 0; b < a.length; b++) { 
 
a[b].onclick = function(e){ 
 
    //get child's id in element 
 
    alert(e.target.id); 
 
    
 
    //get element's id 
 
    alert(e.currentTarget.id); 
 
} 
 
}
<div class="reccl" id="allact"><a href="#" class="a" id="b">All Activities</a></div> 
 
<div class="reccl" id="lgns"><a href="#" class="a" id="bb">Logins</a></div> 
 
<div class="reccl" id="dwld"><a href="#" class="a" id="bb">Download</a></div>

+0

哇!多一点是必要的。无需从事件函数返回一个函数。而且,返回的函数的'e'参数总是有'undefined'。 –

+0

@ScottMarcus我的想法是:e.target将指向您在父级内部单击的元素,并且[arg]将指向元素,从而触发onclick事件。因为,这个例子可以写得更简单^^^ –

+0

这是什么意思。只需为该事件分配一个函数即可。无需返回新功能。这没有增加任何价值,只是混淆了代码。 –

相关问题