在创建 jQuery 插件时,我发现了很多用途
var obj = $(this);
$("li:even", obj)
选择当前项目。这是如何运作的?因为在写 jQuery 代码片段时,我曾经写过
$(this).find("li");
有人可以解释一下以便更好地理解吗?参考此代码是here。
两者做同样的事情。事实上,如果你深入挖掘,你会发现$("li:even", obj)
最终调用obj.find("li:even")
.
您可能知道该$()
函数(该变体)在 DOM 中查找元素。接受第二个参数的表单只是为它提供了一个起点,告诉它只在您作为第二个参数提供的 jQuery 集中查找元素的后代。当然,这是什么find
。
我记得看到一个 jQuery 主要开发人员对问题单的评论,他们正在考虑放弃$()
接受起点的版本。
$("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");