Jquery说明> *

时间:2012-07-12 19:05:43

标签: jquery

我正在阅读一个重写的jQuery代码。我无法理解以下代码。

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

5 个答案:

答案 0 :(得分:8)

此选择器匹配以下任何标记:

  • <body>
  • 的直接孩子
  • 没有ID print-modal
  • 不是<script>代码。

然后使用.clone()克隆所有这些元素,尽管clone() d对象没有做任何事情,这很奇怪。

更深入的解释:

body > *表示“选择<body>的直接后代的所有元素”,通配符*选择每个标记。接下来,两个:not()伪类过滤器会删除标识为print_modal的元素以及任何<script>标记。

参考:

答案 1 :(得分:2)

如果我是正确的,在这种情况下,>*body标记的所有子项的选择器,其中:not(#print-modal):not(script)提供了两个来自选择器的排除项。

答案 2 :(得分:1)

>表示“直接儿童”。

*表示“任何标记”。

所以,这就是说找到<script>的第一级孩子的任何标签(不是id="print-modal"<body>)。

注意:此处不需要*,因为如果之前没有任何内容,:not会假设*

答案 3 :(得分:0)

它选择身体的直接子项不是脚本标记且没有标识print-modal的所有元素。

jQuery选择器中的

*表示所有元素。

答案 4 :(得分:0)

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

表示克隆正文的所有直接子元素,但不包含任何标识为print-modal而不是script标记的元素。

也可以写成

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

参考: jQuery