2013-09-23 209 views
-2

我有一些HTML代碼,如果不使用JavaScript,將無法編輯。我試圖訪問DIV是另一種有一個ID孩子:給一個元素的子元素添加一個ID

<div id="contentcolumn"> 
    <div class ="content content_gray"></div> 
    <div class ="forum_tabs"</div> 
</div> 

我試圖訪問的DIV是一個與類的"content content_gray"。我不想使用該類訪問它,因爲其他元素具有此類。我必須通過訪問ID爲「contentcolumn」的DIV的第一個孩子來訪問它。

+0

你嘗試過什麼嗎? – j08691

+0

那麼你的問題是什麼?繼續做吧。 – 2013-09-23 21:00:49

+0

真的很問問題,供將來參考。當你似乎還沒有研究和制定你的問題時,你不應該期待社區爲你的工作。 – chryss

回答

2

我必須通過訪問ID爲「contentcolumn」的DIV的第一個孩子來訪問它。

您的意思是這樣的?

var elm = document.getElementById("contentcolumn").firstElementChild; 

你說,這是第一個孩子,所以我沒有刻意去查className,但當然,你可以,如果你喜歡。你會做補充一點檢查:

if (elm.className.match(/\bcontent\b/) && elm.className.match(\bcontent_gray\b)) { 
    // ... 
} 

請注意,並非所有的瀏覽器都firstElementChild。 (我不記得肯定IE8是否確實,例如)。對於那些不這樣做,一個簡單的循環做它(和作品甚至在那些有它):

var elm = document.getElementById("contentcolumn").firstChild; 
while (elm && elm.nodeType !== 1) { 
    elm = elm.nextSibling; 
} 

爲了你可以有一個小工具庫中使用:

function firstElementChild(parent) { 
    var node = parent && parent.firstElementChild; 
    if (!node && parent) { 
     node = parent.firstChild; 
     while (node && node.nodeType !== 1) { 
      node = node.nextSibling; 
     } 
    } 
    return node; 
} 

你問下面如何設置元素的id一旦你擁有的元素。這部分很簡單:。

elm.id = "value"; 
+0

沒有我不使用jQuery。但你也可以包括你的答案如何設置子元素ID? –

+0

@TommyCoffee:哦,那部分很簡單:'elm.id =「value」;':-) –

0

檢查各的document.getElementById的element.className( 「contentcolumn」)的getElementsByTagName( 「格」)

否則,jQuery的( 「#ID>的.class」)看起來比較簡單

相關問題