$("span:last-child").hide("fast", function () {
$(this).prev().hide("fast", arguments.callee);
});
我无法理解代码中的这一点:
("span:last-child")
:这是什么?
arguments.callee
:这是什么?
答案 0 :(得分:8)
$
是主要的jQuery函数。
$("span:last-child")
搜索任何<span>
代码,这些代码是其父级的最后一个子代。
找到:
<div><span>some data </span> something else <span>testing</span></div>
它会找到包含testing
但不包含some data
的范围。
然后隐藏它发现的那些跨度。隐藏的第二个参数是动画后的回调。该回调转到“前一个”子节点('其他'文本节点),隐藏它并传递“被调用函数”(arguments.callee)作为回调。这使得它成为“递归”功能。
这会隐藏所有具有<span>
作为最后一个孩子的块的全部内容。
答案 1 :(得分:7)
答案 2 :(得分:0)
("span:last-child")
返回作为其父级的最后一个子元素的所有span元素。 arguments.callee看起来像是试图将函数本身传递给下一个函数。本质上它传递一个函数指针。看起来它的作用是找到span对象,然后递归隐藏所有先前的兄弟。
答案 3 :(得分:0)
span:last-child
选择每个范围中的最后一个子元素。
arguments.callee
是对它所调用的函数的引用,甚至适用于未命名的函数。
答案 4 :(得分:0)
(“span:last-child”)将匹配一个跨度,它是它父母的最后一个孩子。
arguments.callee是对被调用的“实际”函数的引用。在这种情况下,只是为最先前的兄弟姐妹提供相同的隐藏功能。实际上创建了一个“新的”最后一个跨度。