2012-03-23 4 views
1

私は実際にはそれを変更することができるように、APIから取り出される数字の文字列var array = 1,6,2,9,5を持っています。ディスプレイのクラスは数字の文字列である

は、私は私の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 '内に存在する任意のクラスに追加します。したがって、私の例divの1,6,2,9,5はクラス 'foo'を取得します。

どうすれば実現できますか?

+0

「1,6,2,9,5」という文字列はありますか? – Jon

+0

おそらく '[1、6、2、9、5]'でなければなりません。人々は自分の質問に壊れたサンプルコードを持っているので、自分自身では役に立たない。 – Pointy

答えて

4

簡単な方法:

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

編集 — "アレイ" は、実際に文字列の場合:

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

ワンライン、素敵: – slash197

+0

ありがとうございました。このエラーが発生して以来、私はそれが配列ではなく文字列であることを言いました:Uncaught TypeError:オブジェクト1,6,2,9,5はメソッド 'join'を持っていません – jQuerybeast

+0

OK、正確にすることが重要ですあなたの質問:-) – Pointy

0

これを試してみてください:

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

あなたが利用することができますjQueryは複数の選択を可能にするという事実のarrayが本当に配列の場合

:あなたがすでに持っているものにかなり近いカンマで区切らORS

$("." + array.join(", .")).addClass("foo"); 

それは文字列だ場合(例えば、 "1,2,3")の代わりに:http://jsfiddle.net/rkknp/1/:ES5 .someを使用して

$("." + array.replace(/,/g, ", .")).addClass("foo"); 
+0

ありがとうございます。私は私の質問で間違っていた、それは文字列です。あなたの2番目のオプションを使用すると、最初の2つの文字列だけがクラスを取得します。 console.log(array.replace( "、"、 "、"。 ");私は1、0.6,2,9,5を受け取ります。 – jQuerybeast

+0

@jQuerybeast:それは私の部分で間違いでした。あなたが最初のパラメータとして正規表現を与えない限り、 'replace'はすべての出現を置き換えません)。修正する解答を編集しました。 – Jon

0

var array = [1, 6, 2, 9, 5]; 

// filter elements that have a class apparent in the array 
$(".btn").filter(function() { 
    return array.some($.fn.hasClass.bind($(this))); 
}).addClass("red");​ 
0

CSSクラスに無効な名前が使用されています。

The name can contain characters a-z, A-Z, digits 0-9, period, hyphen, escaped characters, Unicode characters 161-255, as well as any Unicode character as a numeric code, however, they cannot start with a dash or a digit.

http://www.w3.org/TR/CSS2/syndata.html#charactersWhich characters are valid in CSS class names/selectors?Allowed characters for CSS identifiersを参照してください。

0

これは機能するはずです。このコードで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'); 
} 
関連する問題