这两个代码片段做相同的事情吗?如果是,什么时候应该使用一个而不是另一个?(除了当你需要做一些涉及
i
或的事情时value
)$("foo").each(function(i,value) { $(this).empty(); });
对比
$("foo").empty();
通常可以假设这
$("foo").someMethod()
意味着“在与选择器匹配的每个元素上运行somemethod()
,除非方法的名称是each
?(即每个都是特殊情况)
问问题
247 次
2 回答
4
假设您指的是股票 jQuery 函数,是的,这两个代码片段是相同的。
each()
当您想要使用索引或防止长函数链接时,您应该使用该函数。
$('foo').someMethod()
您对jQuery 方法的理解是正确的。但请注意,某些插件可能会以不同的方式处理选择器,或者仅影响例如第一个匹配的元素。
于 2012-10-16T13:02:24.963 回答
3
是的,大多数 jQuery 函数都是这样设计的。
看代码示例:
$.fn.someMethod = function() {
return this.each(function() {
do_something(this);
});
};
所以即使你可以.each
再次使用,你也应该使用:
$(selector).someMethod();
不是
$(selector).each(function() {
$(this).someMethod();
});
于 2012-10-16T13:08:01.683 回答