2012/04/23

[JavaScript] 例外の原因。HIERARCHY_REQUEST_ERR: DOM Exception 3


JavaScriptのある処理で例外が出た。
Chromeのコンソールで確認したところ、エラー文は「HIERARCHY_REQUEST_ERR: DOM Exception 3」
変数の中身など処理を確認しながら調べてみても、いまいちつかめない。
そもそもこの例外が意味するものもわからなかった。これは自分の英語力の足らなさが原因なんだけど…日本語で説明してくれているページが少なかったので困った。

原因を説明してくれているページ→付録A.2 DOMパーサの動作の差異
前述のページには「あるノードに対して,そのノードまたは祖先ノードを引数newChildとして,appendChildメソッドまたはinsertBeforeメソッドを実行した場合」が原因と書いてある。
コードを見返したところ、DOMを取得する部分でセレクターを書き間違えていたことに気づいた。
//間違いコード
$('#wrapper ul:last').append(liElement);

//正解コード
$('#wrapper > ul:last').append(liElement);
間違いコードで取得したul要素はappendしようとしたliの子要素だったため例外が起きていた。 ただの凡ミスなんだけど、原因がわかるのにちょっと時間がかかってしまった。

つまりは親を子の中に入れようとしてた。
それは社会的にもJavaScript的にもタブーだよってことみたい

0 件のコメント:

コメントを投稿