多个实例的jQuery .eq()?

时间:2013-01-03 17:27:07

标签: jquery

我有以下工作正常:

if (jQuery('#target').val() == '1') {
    jQuery('.room_row').addClass('hide').eq(0).removeClass("hide");
  }

但是我需要添加这样的内容,以便前两个div.room_row删除了他们的“隐藏”类:

if (jQuery('#target').val() == '2') {
    jQuery('.room_row').addClass('hide').eq(0,1).removeClass("hide");
  }

更新很多人都建议使用切片,但我不能让它工作。我有7个div和一类room_row。当您在选择列表中选择选项1时,我需要第一个.room_row可见。如果你选择2我需要前两个.room_row可见,等等。

4 个答案:

答案 0 :(得分:1)

试试这个

jQuery('.room_row').addClass('hide').slice(0,2).removeClass('hide');

这对你有帮助

    jQuery('.room_row:gt(2)').addClass('hide');

http://api.jquery.com/slice/

答案 1 :(得分:0)

您可以使用切片:

jQuery('.room_row').slice(2).addClass("hide");

这是一个简单的例子:

> [1, 2, 3, 4, 5, 6].slice(2)
[3, 4, 5, 6]
> [1, 2, 3, 4, 5, 6].slice(0, 2)
[1, 2]

或者,有:lt:gt

jQuery('.room_row:gt(2)').addClass('hide');

答案 2 :(得分:0)

改为使用slice

jQuery('.room_row').addClass('hide').slice(0,2).removeClass("hide");

答案 3 :(得分:0)

你试过了吗?

if (jQuery('#target').val() == '2') {
    jQuery('.room_row:lt(2)').removeClass("hide");
  }