我有一个看起来像这样的HTML:
<div id="mainDiv"> <-- I have this
<div>
<div></div>
<div></div> <-- I need to get this
</div>
<span></span>
<more stuff />
</div>
我正在使用:
var mainDiv = document.getElementById('mainDiv');
因为我需要var中的div,但我还需要将mainDiv中第一个div的第二个div放到变量中。
我怎么能以简单的跨浏览器方式做到这一点?
答案 0 :(得分:27)
假设结构是静态的,你可以这样做:
var mainDiv = document.getElementById('mainDiv'),
childDiv = mainDiv.getElementsByTagName('div')[0],
requiredDiv = childDiv.getElementsByTagName('div')[1];
答案 1 :(得分:11)
var mainDiv = document.getElementById('mainDiv');
var x = mainDiv.children[0].children[1];
或
var mainDiv = document.getElementById('mainDiv');
var x = mainDiv.getElementsByTagName('div')[0].getElementsByTagName('div')[1];
答案 2 :(得分:6)
答案 3 :(得分:4)
我只想用一行香草代码。
适用于任何元素,不仅限于结构中的标记名称。但必须保留元素和层次结构的数量。
var requiredDiv = document.getElementById('mainDiv').firstChild.firstChild.nextSibling;
答案 4 :(得分:0)
var mainDiv = document.getElementById('mainDiv');
var div = maindiv.getElementsByTagName('div')[2];//third div
答案 5 :(得分:-1)
您知道现在有querySelector
吗?
console.log(
mainDiv.querySelector(':nth-child(1) > :nth-child(2)'))
<div id="mainDiv">
<div>
<div></div>
<div>come get me</div>
</div>
<!-- more stuff -->
</div>