Javascript 使用jQuery在删除后更新交替列表行颜色

Javascript 使用jQuery在删除后更新交替列表行颜色,javascript,jquery,css,alternating,Javascript,Jquery,Css,Alternating,我正在使用jQuery交替背景色,并向一些无序列表项添加半径,如下所示: // Alternate row colors for group listing and add top/bottom radii $('li.groupList:even').css({backgroundColor: '#e4e4e4'}); $('li.groupList:odd').css({backgroundColor: '#ededed'}); $('li.groupList:first').addClas

我正在使用jQuery交替背景色,并向一些无序列表项添加半径,如下所示:

// Alternate row colors for group listing and add top/bottom radii
$('li.groupList:even').css({backgroundColor: '#e4e4e4'});
$('li.groupList:odd').css({backgroundColor: '#ededed'});
$('li.groupList:first').addClass('rtm');
$('li.groupList:last').addClass('rbm');
但是,如果使用实际的
remove()
方法删除其中一个列表项,则颜色和半径不会更新

// Remove group members
$("[id^='removeGroupMember_']").click(function () {
    $(this).parent().slideUp("fast", function () {
        $(this).remove();
    });
});
这是因为浏览器没有收到列表数组更改的通知,还是我应该只使用CSS(即使用
li.groupList:n子项(偶数)
等)来执行此操作


我之所以开始使用jQuery,是因为我认为它比CSS3选择器更能兼容跨浏览器(但如果您不这么认为,请告诉我!)。

每当您删除一个列表项时,请调用此函数:

function update() {
    var l = $('li.groupList').removeClass('rtm rbm').removeAttr('backgroundColor');

    l.filter(':even').css({backgroundColor: '#e4e4e4'});
    l.filter(':odd').css({backgroundColor: '#ededed'});
    l.first().addClass('rtm');
    l.last().addClass('rbm');
}

每当删除以下列表项之一时,调用此函数:

function update() {
    var l = $('li.groupList').removeClass('rtm rbm').removeAttr('backgroundColor');

    l.filter(':even').css({backgroundColor: '#e4e4e4'});
    l.filter(':odd').css({backgroundColor: '#ededed'});
    l.first().addClass('rtm');
    l.last().addClass('rbm');
}

您需要重新更新live Dom不确定css,但是在remove()之后再次修改css会很糟糕吗?您需要重新更新live Dom不确定css,但是在remove()之后再次修改css会很糟糕吗?谢谢,我还在学习,所以像这样缓存选择器帮助我了解了更多,我可以在其他工作中使用。谢谢,我还在学习,像这样缓存选择器帮助我了解了更多,我可以在其他工作中使用