jQuery为除nth-child之外的所有div设置了一个类

我试图在选择列表中选择第一个元素时隐藏除第一个类之外的所有类的div。 我认为第4行会覆盖第3行,但它似乎并没有这样做。

function myFunction() { if (jQuery('#select').val() == '1') { jQuery('.mydiv').addClass('hide'); jQuery('.mydiv(1)').removeClass('hide'); } } 

更新 – 各种div.mydiv可能已经有了hide类,因此代码需要确保只有第一个实例具有类。 其他div需要删除它,如果有的话。

将其添加到所有,首先过滤,然后删除该类。

 function myFunction() { if (jQuery('#select').val() == '1') { jQuery('.mydiv').addClass('hide').first().removeClass("hide"); } } 

您可以使用:not()选择器

 $(".mydiv:not(:nth-child(1))").addClass('hide'); 

只要排除第n个孩子

 jQuery( '.mydiv' ).not( ':eq(1)' ).addClass( 'hide' );