2012-10-28 45 views
0

如何通過當前div中的id獲取第一個元素?意味着當class =「uc-current」去到其他元素時,它會在新元素中獲得id =「c」的第一個元素。如何根據不斷變化的父類獲取元素ID

我想做這樣的事情。

function fani(){document.getElementById('uc-current c').className ='c-back';} 

有幫助嗎?

+2

ID應該是唯一的每個文檔。你有點暗示你正在使用重複ID。 –

+1

應該永遠不會有多個元素具有相同的ID – ColBeseder

+0

實際上它在一個循環中,所以id被重複多次。 – user1564354

回答

0

你不應該需要這樣做。 ID應該是唯一的,所以只需使用getElementById就足夠了。但我曾參與違反此規則的第三方網站。所以,如果你發現自己在這種情況下,你可以試試這個:如果你正在使用jQuery

function firstMatchingID(parentElement, id){ 
    var nodes = parentElement.children ; 
    var ln = nodes.length ; 
    for(var i = 0; i<ln ; i++){ 
     if (nodes[i].id == id){ 
      return nodes[i] ; 
     } 
    } 
} 

var parentElement = document.getElementsByClassName("c-back")[0]; // Example only. getElementsByClassName is not supported by all browsers 
firstMatchingID(parentElement, "uc-current") ; 

,你可以這樣做:

$(".c-back>#uc-current:eq(0)"); 

但只看該選擇讓我哭一點。由於不得不重複使用重複使用的ID,所以我一直受到傷害。有一天,我要快速捕捉開發人員。

1

您可能想要使用類名稱:<div class="c">...</div>

然後你做:

document.querySelector('#uc-current .c').className = 'c-back'; 
+0

它沒有工作:( – user1564354