在li上应用替代类,其中隐藏的li存在于列表中,而不使用:visible

时间:2012-01-17 12:58:59

标签: javascript jquery jquery-selectors

我有李的列表也有一些隐藏的李。我正在使用这个方法

来应用css类
function ArrangeAlternateRows() {
    $('#' + firstContainer + ' li, #' + secondContainer + ' li').removeClass('AltRow');

    $('#' + firstContainer + ' li:visible:odd').addClass('AltRow');
    $('#' + secondContainer + ' li:visible:odd').addClass('AltRow');
    $('#' + secondContainer + ' li input[type="text"]').css("width", "100%");
}

它工作得很好,但在IE-7中“:可见”不起作用,所以我试图使用“not(:hidden)”,但也无效。

是否有替代方法在li上应用css类而不使用“:visible”?

3 个答案:

答案 0 :(得分:1)

您仍然可以使用循环直接将类分配给li。

如果你这样做,你也保留了与其他浏览器(如IE7)的兼容性

检查:http://jsfiddle.net/b4zhs/2/

答案 1 :(得分:0)

.invisibleItem
{
   display:none;
}

答案 2 :(得分:0)

同时使li可见/不可见添加/删除类,例如visible-li

$('#' + firstContainer + ' li').show().toggleClass("visible-li");
$('#' + firstContainer + ' li').hide().toggleClass("visible-li");

所以

$('#' + firstContainer + ' li.visible-li')  // gives visible li elements inside firstContainer