如果id等于列表中的值,则将class添加到div

时间:2011-04-16 22:41:26

标签: javascript jquery

嗨我需要在div中添加一个类,如果它的id等于list中的值:

list = ["a1", "a2", "a3"]

<div id="a1"></div>
<div id="b1"></div>
<div id="c1"></div>
<div id="a3"></div>

感谢任何帮助

感谢 Ĵ

4 个答案:

答案 0 :(得分:4)

list = ["a1", "a2", "a3"];

$(list).each(function(){
    $('#'+this).addClass('added');
});

http://jsfiddle.net/qgeVH/2/

修改

BoltClock的建议:

$.each(list, function(){
    $('#'+this).addClass('added');
});

http://jsfiddle.net/qgeVH/4/

答案 1 :(得分:3)

使用.each()$.inArray()

var list = ['a1', 'a2', 'a3'];

$('div').each(function() {
    if ($.inArray(this.id, list)) {
        $(this).addClass('class');
    }
});

答案 2 :(得分:1)

首先我想到的是你可以创建一个for循环:

for(var i = 0; i < list.length; i++){
     if(document.getElementById(list[i])) {
       document.getElementById(list[i]).className = 'added2';
     }
}

http://jsfiddle.net/qgeVH/3/

答案 3 :(得分:1)

这里有另一个JSFIDDLE DEMO您可以将列表转换为由“,#”分隔的字符串以创建选择器

var list = ["a1", "a2", "a3"];

var joined_list = list.join(',#'); //turn into string
// you need to add a "#" to the beginning of the string to make a proper selector
$('#'+joined_list).addClass('foo');

评论说这可能是短期的

 var list = ["a1", "a2", "a3"];
 $('#'+list.join(',#')).addClass('foo');