-1

私はこのような2つの要素を持っています:

<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を含むすべての最新のブラウザーをサポートします。IE7以下のサポートが必要な場合は、クラスごとに要素を取得するためのヘルパーメソッドが必要になります。

于 2012-10-02T11:49:44.470 に答える
1

user1689607のコメントは、複数のIDに耐えることができます。ただし、上記のhtmlが逐語的であると仮定します(つまり、コンテナーdivをクラスまたはIDで識別できます)。

これは正常に動作し、クロムでテストされています。

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 に答える