jQuery:not()问题
jQuery 1.4:jQuery:not()问题,jquery,selector,Jquery,Selector,jQuery 1.4: $('#menu li:last:not(.ignore)').addClass('last'); HTML: 项目1 项目2 第3项 最后一个类不应用于项目2。我做错了什么 谢谢更改:last和:not()的顺序: 表达式的工作方式如下: 查找ID为“menu”的元素 查找该元素的所有子体列表项 将结果限制到该集合中的最后一个元素 过滤掉没有“忽略”类的元素(此时只有一个元素,最后一个) 最后一个元素有一个ignore类,因此它被过滤掉。这就是它不起作用的
$('#menu li:last:not(.ignore)').addClass('last');
HTML:
- 项目1
- 项目2
- 第3项
<代码>最后一个类不应用于项目2
。我做错了什么
谢谢更改
:last
和:not()的顺序
:
表达式的工作方式如下:
- 查找ID为“menu”的元素李>
- 查找该元素的所有子体列表项李>
- 将结果限制到该集合中的最后一个元素李>
- 过滤掉没有“忽略”类的元素(此时只有一个元素,最后一个)
$("#menu li:not(.ignore):last").addClass("last");
至少对我来说,说“在第一次出现.ignore之前给我列表项”似乎更符合逻辑:
啊!!我否定了这个想法,因为:last:没有在更早的时候工作过,但我想不是在jQuery1.4中。无论如何谢谢!!:)@Nimbuz:选择器
:not(…):last
和:last:not(…)
具有不同的语义。前者将首先排除与:not(…)
表达式不匹配的所有元素,然后获取其中的最后一个元素。后者将首先获取最后一个元素,如果它与:not(…)
条件不匹配,则将其排除。
$('#menu li:not(.ignore):last')
$("#menu li:not(.ignore):last").addClass("last");
// tested
$("#menu li.ignore:first").prev("li").addClass('last');