3

私の友人は最近これを私と共有しました:

$("*").append($("*")); // watch your browser eat itself

このjQueryは正確に何をしようとしていますか?それは無限ループになりますか、それともすべての要素を他のすべての要素に繰り返し追加することによってDOMを壊しますか?要素を別の要素に追加すると、基本的にその要素が現在の親から移動することを私は知っています。しかし、それ自体に要素を追加しようとするとどうなるでしょうか。単にエラーが発生して死ぬのでしょうか、それともそのステップをスキップして先に進むのでしょうか。

4

3 に答える 3

1

ChromeとFFXの両方で(怖いのでIEでテストしませんでした)、ノードをそれ自体に追加したり、nullノードに追加したりしようとすると、階層要求エラーが発生します。

これは、論理的には実際にDOMツリーを通過し、最初に他のノードを追加しようとすることを意味します。セレクターは同じノードを2回選択し、それ自体に追加しようとします。その結果、エラーが発生します。

于 2012-09-17T17:58:54.670 に答える
0

html / head / script / bodyあなたが絶対にすべて、タグを追加しようとしているので、それの外見からそれはエラーになります(そして何もしません) 。これは、特定のタグ内にこれらのタグの一部を追加するとエラーが発生するためだと思います。<html/head/etc>(つまり、タグ内にこれらすべてのタグを追加します<script>。)

于 2012-09-17T18:00:03.020 に答える
0

*すべてのタグのCSSセレクターです。つまり、基本的に「すべてのタグをすべてのタグに追加する」のです。

于 2012-09-17T18:01:18.807 に答える