2017-05-30 22 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

這是什麼意思。只需爲該事件分配一個函數即可。無需返回新功能。這沒有增加任何價值,只是混淆了代碼。 –

相關問題