2017-01-28 8 views
1
var data = 'sky,sea,earth,moon'; 
var a = data.split(","), i; 
for (i = 0; i < a.length; i++) { 
    var b = a[i].text(); 
    $('mdcatsitem').each(function(){ 
     if (b == $(this).text()) {$(this).addClass('toggleright');} 
    }); 
} 

コンソールそれぞれ分割さ結果を比較
- の部分にdataを分割します。
- eachのテキストを取得し、eachmdcatsitemのテキストと比較してください。
- 一致する場合 - クラスを追加するmdcatsitem各クラス要素と

+0

'$( 'mdcatsitem')フィルタ(関数(I、EL){戻りa.includes(el.textContent)})addClass( 'toggleright ') ' –

答えて

1

a[i]に置き換えます。

a[i]DOM要素しかし文字列ではありません。 aは、splitdataの後の配列です。

a = ['sky', 'sea', 'earth', 'moon'] 

使用このコード:

var data = 'sky,sea,earth,moon'; 
var a = data.split(","), i; 
for (i = 0; i < a.length; i++) { 
    var b = a[i]; 
    $('mdcatsitem').each(function(){ 
     if (b == $(this).text()) {$(this).addClass('toggleright');} 
    }); 
} 
+1

ありがとう、解決済み。 – bonaca

1

なぜ.text()を文字列に呼び出すのですか?

dataは、区切られた文字列で、あなたはaそれに.split()を呼び出した後は、単に文字列の配列です:a上でループするとき

['sky', 'sea', 'earth', 'moon'] 

、あなたはちょうどあなたがしたい文字列として直接a[i]を参照することができます。

var b = a[i]; 
// b now equals the string, such as 'sky' or 'sea'