3

私はapを書き直したjQueryコードを調べていました。次のコードがわかりません。

$('body > *:not(#print-modal):not(script)').clone();
4

5 に答える 5

8

このセレクターは、次のすべてのタグに一致します。

  • の直接の子<body>
  • IDがなくprint-modal
  • <script>タグではありません。

次に、これらすべての要素を。で複製しますが、 dオブジェクトで.clone()は何も行われず、これは奇妙なことです。clone()

より詳細な説明:

body > *「の直接の子孫であるすべての要素を選択する」を意味し<body>、ワイルドカードは*すべてのタグを選択します。次に、2つの:not()疑似クラスフィルターは、IDを持つ要素とprint_modalすべての<script>タグを削除します。

参照:

于 2012-07-12T19:07:50.737 に答える
2

私が正しければ、この場合はタグ>*のすべての子のセレクターであり、セレクターから2つの除外を提供します。body:not(#print-modal):not(script)

于 2012-07-12T19:07:43.167 に答える
1

>「の直接の子供」を意味します。

*「任意のタグ」を意味します。

つまり、これは、の第1レベルの子であるタグ(ない<script>、またはある)を見つけることを意味します。id="print-modal"<body>

注:前に何もない場合を想定しているため、*ここでは必要ありません。:not*

于 2012-07-12T19:08:12.373 に答える
0

スクリプトタグではなく、IDを持たない本体の直接の子であるすべての要素を選択しますprint-modal

*jQueryセレクターでは、すべての要素を意味します。

于 2012-07-12T19:08:02.950 に答える
0
$('body > *:not(#print-modal):not(script)').clone();

つまり、bodyのすべての直接の子要素を複製しますが、idprint-modalを持ちscriptタグを持たない要素は複製しません。

次のように書くこともできます

$('body > *').not('#print-modal, script').clone();

参照: jQuery

于 2012-07-12T19:09:07.440 に答える