非表示の div 内に XMLHttpRequest からの応答を追加し、呼び出しgetElementById
て目的の要素を取得できます。作業が完了したら、後で div を削除します。または、これを処理する関数を作成することもできます。
function addNinjaNodeToDOM(html) {
var ninjaDiv = document.createElement("div");
ninjaDiv.innerHTML = html;
ninjaDiv.style.display = 'none';
return ninjaDiv;
}
var wrapper = addNinjaNodeToDOM(HttpRequest.innerText);
var requiredNode = wrapper.getElementById("WantedElement");
// do something with requiredNode
document.body.removeChild(wrapper); // remove when done
DOM に追加する唯一の理由getElementById
は、DOM ツリーの一部でないと機能しないためです。MDCを参照してください。
ただし、デタッチされた DOM ノードでセレクターと XPath クエリを実行することはできます。これにより、要素を DOM に追加する必要がなくなります。
var superNinjaDiv = document.createElement('div');
superNinjaDiv.innerHTML = html;
var requiedNode = superNinjaDiv.querySelector("[id=someId]");