私はapを書き直したjQueryコードを調べていました。次のコードがわかりません。
$('body > *:not(#print-modal):not(script)').clone();
私はapを書き直したjQueryコードを調べていました。次のコードがわかりません。
$('body > *:not(#print-modal):not(script)').clone();
このセレクターは、次のすべてのタグに一致します。
<body>print-modal、<script>タグではありません。次に、これらすべての要素を。で複製しますが、 dオブジェクトで.clone()は何も行われず、これは奇妙なことです。clone()
より詳細な説明:
body > *「の直接の子孫であるすべての要素を選択する」を意味し<body>、ワイルドカードは*すべてのタグを選択します。次に、2つの:not()疑似クラスフィルターは、IDを持つ要素とprint_modalすべての<script>タグを削除します。
参照:
私が正しければ、この場合はタグ>*のすべての子のセレクターであり、セレクターから2つの除外を提供します。body:not(#print-modal):not(script)
>「の直接の子供」を意味します。
*「任意のタグ」を意味します。
つまり、これは、の第1レベルの子であるタグ(ない<script>、またはある)を見つけることを意味します。id="print-modal"<body>
注:前に何もない場合を想定しているため、*ここでは必要ありません。:not*
スクリプトタグではなく、IDを持たない本体の直接の子であるすべての要素を選択しますprint-modal。
*jQueryセレクターでは、すべての要素を意味します。
$('body > *:not(#print-modal):not(script)').clone();
つまり、bodyのすべての直接の子要素を複製しますが、idprint-modalを持ちscriptタグを持たない要素は複製しません。
次のように書くこともできます
$('body > *').not('#print-modal, script').clone();
参照: jQuery。