我有两个这样的元素:
<div id="first">
<div id="test"></div>
</div>
<div id="second">
<div id="test"></div>
</div>
然后我想getElementbyId(&#39; test&#39;)但是我需要测试&#39;在第一个div。 同时这是一个例子,我的div没有预先定义的顺序。
答案 0 :(得分:3)
具有相同ID的多个元素无效,因此您不能。
您应该使用class="test"
代替。
<div id="first">
<div class="test"></div>
</div>
<div id="second">
<div class="test"></div>
</div>
然后这样做:
var t = document.getElementById("second").querySelector(".test");
或者只是这个:
var t = document.querySelector("#second .test");
这将支持所有现代浏览器,包括Internet Explorer 8.如果需要支持IE 7及更低版本,则需要一个辅助方法来按类获取元素。
答案 1 :(得分:0)
user1689607的评论是多个ID可以承受的,假设你上面显示的html是逐字的(也就是说,你可以识别带有类或id的容器div)
这很好,在chrome中测试过。
function mClick()
{
var mfirst, msecond;
mfirst = document.getElementById('first');
msecond = document.getElementById('second');
alert(mfirst.querySelector('#test').innerHTML);
alert(msecond.querySelector('#test').innerHTML);
}
<div id="first">
<div id="test">test1</div>
</div>
<div id="second">
<div id="test">test2</div>
</div>
<input onclick='mClick();' value='click' type='button'/>
答案 2 :(得分:-2)
您可以在您的场合使用:
var divTest = document.getElementById("first").children[0];
顺便说一句,ID应该是唯一的。