-1

我有两个这样的元素:

<div id="first">
    <div id="test"></div>
</div>


<div id="second">
    <div id="test"></div>
</div>

然后我想getElementbyId('test'),但是我需要第一个div中的'test'。同时这是一个示例,我的 div 没有预定义的顺序。

4

2 回答 2

4

具有相同 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 及更低版本的支持,则需要一个帮助方法来按类获取元素。

于 2012-10-02T11:49:44.470 回答
1

user1689607的评论re multiple ID's承受,假设你上面显示的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'/>
于 2012-10-02T12:06:57.240 回答