2015-09-07 164 views
-2

如何使用javascript檢測元素內部元素參考ID?如何通過id使用javascript檢測元素內部元素?

我有3個元素<div>這樣子,我想檢測<span id="inner">內部<div id="outer_3">是否存在?

在此代碼

,答案就會顯示not

我怎樣才能做到這一點?

<div id="outer_1"> 
    <span id="inner"> 
    </span> 
</div> 

<div id="outer_2"> 
    <span id="inner"> 
    </span> 
</div> 

<div id="outer_3"> 
</div> 
+1

1時不要使用用於類多情況下相同的ID或使用不同勢ID –

+2

什麼你試過了嗎? JavaScript無法使用的地方在哪裏?你能提供一些代碼或工作JsFiddle嗎? – Tarabass

+1

這是一個非常有效的用例,如果你使用jQuery,你可以使用這些'$(' –

回答

0

在HTML中不能有重複的ID值。這被認爲是HTML違規,許多庫不能正常工作。您應該使用一個類,而不是對任何元素,將有不止一個:

<div id="outer_1"> 
    <span class="inner"> 
    </span> 
</div> 

<div id="outer_2"> 
    <span class="inner"> 
    </span> 
</div> 

<div id="outer_3"> 
</div> 

之後就可以引用任何一個選擇,如:

document.querySelectorAll(".inner") 

選擇所有.inner元素。

或者,你可以結合起來,與父ID只選擇一些元素,如:

document.querySelectorAll("#outer_1 .inner") 
+0

我也必須在ie7上使用,SelectorAll不工作 –

+0

@devicrepoyihut - 所以要麼讓自己一個庫,使選擇器查詢工作在這樣一個古老的IE版本(如jQuery或Sizzle)或編碼特定查詢使用' document.getElementById()'和'document.getElementsByClassName()'。你的問題並沒有具體說明你在這方面到底想要什麼,現在對於人們來說支持IE7的情況極爲罕見。 – jfriend00

+0

@devicrepoyihut - 或者說服自己或別人,不值得支持IE7。通過一些措施,目前IE7的市場份額不足0.5%。 – jfriend00