有人可以解释为什么会有效:
$(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对象。
答案 0 :(得分:5)
因为$(this)
是单个元素(事件的目标),而$("ol li a")
包含与该扇区匹配的0到N个元素。
答案 1 :(得分:3)
this
不是与原始选择器对应的元素的集合,它是接收事件的特定元素。如果您的选择器返回单个元素而不是$(this)
且$(selector)
可以互换,但不是在您的情况下。
答案 2 :(得分:2)
当您单击该按钮时,该事件将触发并创建$(this)
,但是,$(this)
仅是单击的元素,而不是整个元素集,因此它不会是能够过滤,因为它只是一个元素。