如何addClass到多个元素?

我正在使用这个javascript来为多个元素添加一个类。 我试图引用多个div和addClass。 它只适用于第一个。

使用Javascript

 $(function(){ if ( $(window).width() = 230 && $(window).width() < 330 ) { $('#item1').addClass('col2'); //max-width 180px } else { $('#item1').addClass('col3'); //max-width 280px } });  

如果我在页面上只有一个#item1但它似乎不想将类添加到同一div id中存在的多个项目,那么它正在工作。 我甚至尝试将类添加到同一div类中存在的多个项而不是id。 如果你能弄明白的话,任何一个都是mw的好解决方案。

我的HTML代码是

  

一直试图弄清楚这几个小时,所以我想我会问是否有人可以指出我正确的方向。 提前致谢。

ID应该是唯一的。 尝试添加一个类,比如“item”:

 
...etc...

然后在你的JS中:

 $('.item').addClass('col1'); 

使用class而不是id进行操作:

 var newClass = ''; if ( $(window).width() < 230 ) { newClass = 'col1'; } else if ( $(window).width() >= 230 && $(window).width() < 330 ) { newClass = 'col2'; } else { newClass = 'col3'; } $('.blue').addClass(newClass); // will apply to all elements with class blue 

这个类只被添加到一个div的原因是因为id应该在HTML中是唯一的。 jQuery只会在使用id选择器时返回第一个匹配的项目。 你有三个选择

选项一:使用类item并使用以下选择器而不是id item1

 $('.item').addClass('col1'); 

选项二:将第二个div上的id更改为item2并使用以下选择器

 $('#item1, #item2').addClass('col1'); 

选项三:使用属性选择器(这更像是一个黑客攻击)

 $('div[id="item1"]').addClass('col1'); 

每页只能有一个具有相同id元素。 ID必须是唯一的。

将所有

标记更改为

,然后您的jQuery将如下所示:

   

使用类选择器而不是id:

 $('.toAdd').addClass('col3'); 

这将为具有类’toAdd’的所有元素添加类’col3’。

具有相同id的多个元素不是有效语法,并且jQuery $('#anyId')的id选择器始终返回具有该id的第一个项目,而不是多个项目。

在你的html和jQuery类选择器$('.item')使用

代替。