在创建jQuery插件时,我发现了
的许多用法var obj = $(this);
$("li:even", obj)
选择当前项目。这是如何运作的?因为在编写jQuery片段时我曾经写过
$(this).find("li");
有人可以解释一下以便更好地理解吗?对此代码的引用是here。
答案 0 :(得分:4)
两人做同样的事情。事实上,如果你挖得足够深,你会发现$("li:even", obj)
最终会调用obj.find("li:even")
。
你可能知道$()
function的那个(变体)在DOM中查找元素。接受第二个参数的表单只是给它一个起点,告诉它只查找作为第二个参数提供的jQuery集中元素的后代。当然,这是find
的作用。
我记得看过一个jQuery主要开发者在问题单上的评论,他们正在考虑放弃接受起点的$()
版本。
答案 1 :(得分:3)
$(“li:even”,obj)
在上面的语句中,context
被传递给选择器。这与$(this).find("li:even");
根据jQuery文档,选择器的语法是jQuery( selector [, context ] )
所有四个都会带来相同的结果。
var obj = $(this);
$("li:even", obj)
或
$("li:even", this)
或
$("li:even", $(this))
或
$(this).find("li:even");