Jquery filter()在使用$(this)时无法正常工作
有人能解释一下为什么会这样:Jquery filter()在使用$(this)时无法正常工作,jquery,html,filter,Jquery,Html,Filter,有人能解释一下为什么会这样: $(function(){ $("ol li a").click(function(){ $("ol li a").filter(":even").css("color", "orange"); }); }); 但这并不是: $(function(){ $("ol li a").click(function(){ $(this).filter(":even").css("color", "orange");
$(function(){
$("ol li a").click(function(){
$("ol li a").filter(":even").css("color", "orange");
});
});
但这并不是:
$(function(){
$("ol li a").click(function(){
$(this).filter(":even").css("color", "orange");
});
});
我认为在此上下文中使用$(this)将引用包含我的原始选择器的jquery对象。因为
$(this)
是单个元素(事件的目标),而$(“ol li a”)
包含0到N个与该扇区匹配的元素。此
不是对应于原始选择器的元素集合,而是接收事件的特定元素。如果选择器返回单个元素,而不是$(this)
和$(选择器)
可以互换,但在您的情况下不能互换。当您单击按钮时,事件将触发并创建$(this)
,但是,$(this)
只是单击的元素,而不是整个元素集,因此,它将无法过滤,因为它只是一个元素。执行$(此)
的console.log,您将得到答案:)