2012-05-01 46 views
0

我想用javascript獲取父標記的ID。在此示例中,文本「stackoverflow」的父ID是「sofsite」,「This」的父ID是「sofbody」。HTML如何獲取父組件的ID?

<body id = 'sofbody'> 
     This is <a href = "www.stackoverflow.com" id = "sofsite">stackoverflow</a>. 
</body> 
+0

如果什麼文本「計算器」頁面上出現多次,組件內具有不同的ID? – paislee

回答

2
var parentid = textnode.parentNode.id; 

docs for parentNode

+0

其實我想要我選擇的文本的父標記的ID。所以如果文檔中有兩次「stackoverflow」,我只想選擇「stackoverflow」的id。 – RAVI

+0

謝謝你!我知道了!! – RAVI

+0

那麼請接受答案。除了給我口碑點外,當你不接受任何答案時,你的下列問題不會被激怒。 – Bergi

0

您只需訪問被單擊的元素parentNode屬性,並繼續向上,直到找到與之相匹配的ID。

這裏是一個小提琴http://jsfiddle.net/8aPnq/

var parent, elem, id = 'sofbody', 
    a = document.getElementById('sofsite'), 
    found = false; 

a.onclick = function(ev) { 

    ev.preventDefault(); 

    while (!found) { 
     parent = parent ? parent.parentNode : ev.target.parentNode; 
     if (parent.id === id) { 
      elem = parent; 
      found = true; 
      console.log(elem); 
     }; 
    }; 
};​