在javascript中选择第一个div孩子的第二个孩子

Jam*_*rzs 24 html javascript parent-child getelementbyid

我有一个看起来像这样的HTML:

<div id="mainDiv"> <-- I have this
    <div>
        <div></div>
        <div></div> <-- I need to get this
    </div>
    <span></span>
    <more stuff />
</div>
Run Code Online (Sandbox Code Playgroud)

我在用:

var mainDiv = document.getElementById('mainDiv');
Run Code Online (Sandbox Code Playgroud)

因为我需要var中的div,但我还需要将mainDiv中第一个div的第二个div放到变量中.

我怎么能以简单的跨浏览器方式做到这一点?

nnn*_*nnn 28

假设结构是静态的,你可以这样做:

var mainDiv = document.getElementById('mainDiv'),
    childDiv = mainDiv.getElementsByTagName('div')[0],
    requiredDiv = childDiv.getElementsByTagName('div')[1];
Run Code Online (Sandbox Code Playgroud)

进一步阅读:( .getElementsByTagName()来自MDN).


Cha*_*ang 14

 var mainDiv = document.getElementById('mainDiv');
 var x = mainDiv.children[0].children[1];
Run Code Online (Sandbox Code Playgroud)

要么

 var mainDiv = document.getElementById('mainDiv');
 var x = mainDiv.getElementsByTagName('div')[0].getElementsByTagName('div')[1];
Run Code Online (Sandbox Code Playgroud)


Ja͢*_*͢ck 6

我会选择jQuery并最终得到这样的东西:

var getThis = $('#mainDiv > div:eq(0) > div:eq(1)');
Run Code Online (Sandbox Code Playgroud)

小提琴


Tee*_*Jay 5

我只需要简单的一行代码就可以了。

适用于任何元素,不仅限于结构中的标签名称。但是必须保留元素的数量和层次结构。

var requiredDiv = document.getElementById('mainDiv').firstChild.firstChild.nextSibling;
Run Code Online (Sandbox Code Playgroud)