2012-07-15 15 views
1

我正在爲某些元素動態地添加一個類。我需要獲取添加的類所在的clicked元素的innerHTML。任何人都可以有任何想法如何獲得innerhtml參考類?使用Javascript檢測類的onclick

請注意,我不想使用任何Javascript庫,如jQuery。

+1

http://stackoverflow.com/a/4589863/362536 – Brad 2012-07-15 04:37:50

+0

看這裏也許幫助[http://stackoverflow.com/questions/4164053/is-it-possible-to-add-an-eventlistener-on-一個-DIV] [1] [1]:http://stackoverflow.com/questions/4164053/is-it-possible-to-add-an-eventlistener-on-a-div – GTSouza 2012-07-15 04:38:14

+0

@布拉德它只是爲直接元素工作。例如。如果我有'myclass'裏面有一個其他類名的div,那麼它不會觸發。 – Stranger 2012-07-15 04:54:50

回答

2

試試這個:

document.body.onclick = function(e) { 
    var clickedEl = window.event ? event.srcElement : e.target; 
    while (clickedEl != null) { 
     if (clickedEl.className 
      && (" " + clickedEl.className + " ").indexOf(" yourclass ") != -1) { 
      // do something, e.g., 
      alert("Element with class was clicked"); 
      return; 
     } 
     clickedEl = clickedEl.parentNode; 
    } 
}​ 

演示:http://jsfiddle.net/3qChA/

這樣做(顯示警報在我的例子)「東西」帶班時,任何元素「yourclass」被點擊時,或者當任何後代單擊具有「yourclass」的元素的元素。顯然你可以用適當的變量替換硬編碼的「yourclass」。