2013-01-03 29 views
1

我有工作正常的情况如下:jQuery .eq()适用于多个实例吗?

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

不过,我需要补充这样的事,这样的前2 div.room_row的有他们的“隐藏”类中删除:

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

UPDATE很多人都在推荐使用切片,但我不能让它工作。我有一个room_row类的7个div。当您在选择列表中选择选项1时,我需要第一个.room_row可见。如果选择2我需要的第2 .room_row可见,等

回答

1

试试这个

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

而且这将有助于你

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

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

+0

@jdln是您的代码吗? – Codegiant

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'); 
0

使用slice inste广告:

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

你试过:

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

第3行工作,如果我删除第2行,但您的代码不会从任何元素删除隐藏类,因为它是。 – Evans

+0

为什么要添加CLASS后跟removeClass不起作用?我早些时候尝试过类似的东西,并且遇到同样的问题。谢谢 – Evans

+0

我不确定... – ATOzTOA