如何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')
使用
代替。