Luk*_*bis 4 jquery jquery-selectors
$j('.select-all-these:not(.except-these):nth-child(3n)');
我正在尝试选择没有特定课程的每三个项目.这是我的jQuery选择器,但它不起作用 - 似乎:nth-child选择器忽略:not选择器.我做错了吗?
作为一个例子,这是它应该如何工作:
.select-all-these.except-these
.select-all-these.except-these
.select-all-these.except-these
.select-all-these
.select-all-these.except-these
.select-all-these
.select-all-these <-- THIS ONE IS SELECTED
.select-all-these.except-these
谢谢!:)
如何使用该方法来过滤结果呢?
$('.select-all-these:nth-child(3n)').not('.except-these');
这是一个小提琴演示:http://jsfiddle.net/ntNgC/
我能看到做这项工作的唯一方法是使用两个filter()调用:
$('.select').filter(
    function(){
        return !$(this).hasClass('dontselect');
    }).filter(
        function(i){
            return (i+1)%3 == 0; // unless you want a zero-based count, regular CSS is one-based
        }).css('color','red');
但是,您可以使用filter()外部变量使用单个调用:
var count = 0;
$('.select').filter(
    function(){
        console.log(!$(this).hasClass('dontselect'));
        if (!$(this).hasClass('dontselect')){
            count++;
            return count%3 == 0;
        }
    }).css('color','red');
JS逆足报告说,单过滤器,勿庸置疑,快一点,但只是非常,非常,非常轻微.
参考文献:
| 归档时间: | 
 | 
| 查看次数: | 6599 次 | 
| 最近记录: |