2013-09-23 151 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”)看起来比较简单

相关问题