Documentに繋がってないDOMツリーから要素を探す場合querySelector()を使う
正確にはDocumentのroot elementが属するツリーのサブツリーでないDOMツリーから要素を探す場合。下記のようなケース。
- htmlの塊をテンプレートとして使いたいので、Documentに繋がってない要素にinnerHTMLでhtmlの塊を挿入する
- そのhtmlの塊の中に、属性の変更をしたい要素があるので、何らかの方法でその要素を取り出したい
- その時点でDocumentに繋がってないので、getElementById()等で取り出せない(DocumentFragmentはDocumentを継承してないのでそのようなIFはない)
- ツリーをjavascriptの世界で辿るのはやりたくない
querySelector()やquerySelectorAll()はNodeSelector IFのメソッドなので、DocumentFragment, Elementなどが継承している。
よって、これらを利用する。
var ele = document.createElement('div'); ele.innerHTML = '<div id="neko1">neko1<div id="neko2">neko2</div></div>'; console.log(ele.querySelector('#neko2'));