<html>
<div id="Unique1"><div id="NotUnique" >123</div></div>
<div id="Unique2"><div id="NotUnique" >456</div></div>
<div id="Unique3"><div id="NotUnique" >789</div></div>
</html>
ユニークなID(Unique1, Unique2, Unique3)の中に、全体で見るとユニークではないID(NotUnique)がある。
ただし、NotUniqueは、各ID(Unique1, Unique2, Unique3)の中ではNotUniqueはユニークである。
456と表示したいのですが、出来ません。
↓↓↓↓↓↓↓
var TargetDiv = document.getElementById("Unique2");
alert(TargetDiv.getElementById("NotUnique").innerHTML);
「IDを全てユニークにする」「item配列を使う」「classを使う」といったものではなく、
あくまでUnique2とNotUniqueの2つのIDを使って456の値を特定する方法をお願いします。
getElementById()は、documentオブジェクトを対象とするため、TargetDivに対してgetElementById()はできません。
TargetDivとその子ノードを別のdocumentに移してから、そのdocumentでgetElementById()をかけることで、そのdocument内でユニークにすることができます。
サンプルです。
var TargetDiv = document.getElementById("Unique3"); //document.write(TargetDiv.getElementById("NotUnique") + "
"); var newDoc; newDoc = document.createDocumentFragment(); //document.write(newDoc.firstSibling + "
"); //document.write(newDoc.documentElement + "
"); newDoc.appendChild(TargetDiv.cloneNode(true)); //document.write(newDoc.getElementById("NotUnique") + "
"); document.write(newDoc.getElementById("NotUnique").innerHTML + "
");
getElementById()は、documentオブジェクトを対象とするため、TargetDivに対してgetElementById()はできません。
TargetDivとその子ノードを別のdocumentに移してから、そのdocumentでgetElementById()をかけることで、そのdocument内でユニークにすることができます。
サンプルです。
var TargetDiv = document.getElementById("Unique3"); //document.write(TargetDiv.getElementById("NotUnique") + "
"); var newDoc; newDoc = document.createDocumentFragment(); //document.write(newDoc.firstSibling + "
"); //document.write(newDoc.documentElement + "
"); newDoc.appendChild(TargetDiv.cloneNode(true)); //document.write(newDoc.getElementById("NotUnique") + "
"); document.write(newDoc.getElementById("NotUnique").innerHTML + "
");
値取得できました!
ありがとうございました。
すみません、間違って編集途中で回答してしまいました...
var TargetDiv = document.getElementById("Unique2"); var newDoc; newDoc = document.createDocumentFragment(); newDoc.appendChild(TargetDiv.cloneNode(true)); alert(newDoc.getElementById("NotUnique").innerHTML); newDoc = null;
値取得できました!
ありがとうございました。