Javascript 显示以数字字符串形式存在的类

Javascript 显示以数字字符串形式存在的类,javascript,jquery,string,addclass,Javascript,Jquery,String,Addclass,我有一个字符串var array=1,6,2,9,5,它是从API检索的,因此我可以真正改变它的方式 我的html中有这样的内容: <div class="1 btn">Foo 1</div> <div class="2 btn">Foo 2</div> <div class="3 btn">Foo 3</div> <div class="4 btn">Foo 4</div> <div clas

我有一个字符串
var array=1,6,2,9,5
,它是从API检索的,因此我可以真正改变它的方式

我的html中有这样的内容:

<div class="1 btn">Foo 1</div>
<div class="2 btn">Foo 2</div>
<div class="3 btn">Foo 3</div>
<div class="4 btn">Foo 4</div>
<div class="5 btn">Foo 5</div>
<div class="6 btn">Foo 6</div>
<div class="7 btn">Foo 7</div>
<div class="8 btn">Foo 8</div>
<div class="9 btn">Foo 9</div>
Foo 1
富2
富3
富4
富5
富6
富7
富8
富9
我想在数组中存在的任何类上添加一个类“
foo
”。因此,在我的示例中,div的1,6,2,9,5将得到一个类“
foo

我怎样才能做到这一点呢?

试试这个:

for (var i=0; i<array.length; i++)
{
    $('.' + array[i]).addClass('foo');
}
for(var i=0;i试试这个:

for (var i=0; i<array.length; i++)
{
    $('.' + array[i]).addClass('foo');
}
for(var i=0;i快速方法:

$('.' + array.join(', .')).addClass('foo');
编辑-如果“数组”实际上是字符串:

$('.' + array.split(',').join(', .')).addClass('foo');
快速方法:

$('.' + array.join(', .')).addClass('foo');
编辑-如果“数组”实际上是字符串:

$('.' + array.split(',').join(', .')).addClass('foo');

您可以利用jQuery允许使用多个由逗号分隔的选择器这一事实,这与您已经拥有的选择器非常接近:

如果
array
实际上是一个数组:

$("." + array.join(", .")).addClass("foo");
如果它是一个字符串(例如
“1,2,3”
):


您可以利用jQuery允许使用多个由逗号分隔的选择器这一事实,这与您已经拥有的选择器非常接近:

如果
array
实际上是一个数组:

$("." + array.join(", .")).addClass("foo");
如果它是一个字符串(例如
“1,2,3”
):


使用ES5
。一些


使用ES5
。一些


您对CSS类使用的名称无效

名称可以包含字符a-z、a-z、数字0-9、句点、连字符、转义字符、Unicode字符161-255以及作为数字代码的任何Unicode字符,但是,它们不能以破折号或数字开头


请参阅和。

您正在为CSS类使用无效的名称

名称可以包含字符a-z、a-z、数字0-9、句点、连字符、转义字符、Unicode字符161-255以及作为数字代码的任何Unicode字符,但是,它们不能以破折号或数字开头


请参阅和。

这应该可以工作。请注意,我在这段代码中使用了jQuery

var yourArray = [1,6,2,9,5];
var elements = $('div');

for(var i=0; i<yourArray.length; i++){
    $(elements[yourArray[i]-1]).addClass('foo');
}
var yourray=[1,6,2,9,5];
变量元素=$('div');

对于(var i=0;i这应该可以工作

var yourArray = [1,6,2,9,5];
var elements = $('div');

for(var i=0; i<yourArray.length; i++){
    $(elements[yourArray[i]-1]).addClass('foo');
}
var yourray=[1,6,2,9,5];
变量元素=$('div');

对于(var i=0;iIs,
1,6,2,9,5
字符串?可能应该是
[1,6,2,9,5]
。人们在他们的问题中对损坏的示例代码不感兴趣。那是
1,6,2,9,5
字符串吗?可能应该是
[1,6,2,9,5]
。人们在提问时不会因为示例代码的错误而对自己有任何好处。谢谢。我刚才提到,这不是一个数组,而是一个字符串,因为我遇到了这个错误:Uncaught TypeError:Object 1,6,2,9,5没有“join”方法好的,正如我说的,在提问中保持准确很重要:-)@我不知道为什么我认为它是一个数组。至少我知道我在问任何问题时都会格外小心。谢谢谢谢你。我刚才提到它不是一个数组,而是一个字符串,因为我得到了这个错误:未捕获类型错误:对象1,6,2,9,5没有方法“join”好的,正如我说的,在你的问题中准确是很重要的:-)@我不知道为什么我认为它是一个数组。至少我知道我在问任何问题时都会格外小心。谢谢你。我的问题错了,它是一个字符串。当我使用第二个选项时,只有前两个字符串得到类。当我使用console.log(array.replace(“,”,“,”)时;我得到1,6,2,9,5@jQuerybeast:这是我的一个错误(我总是忘记
replace
如何不替换所有出现的内容,除非您将正则表达式作为第一个参数提供给它).编辑了答案以修复。谢谢。我的问题错了,它是一个字符串。当我使用第二个选项时,只有前2个字符串获得类。当我使用console.log(array.replace(“,”,”,”);我得到1.6,2,9,5@jQuerybeast当前位置那是我的一个错误(我总是忘记
replace
如何不替换所有出现的内容,除非将正则表达式作为第一个参数提供给它)。编辑答案以修复。