2017-02-03 3 views
1

私は配列をidArrayにjQueryの各関数に渡していますが、これを使って値を取得しています。私は新しいjQueryセレクタを作成するために値を使用しようとしています。ここでjqueryセレクタとして値を使用しているエラー

は例idArrayは次のようになります。

Array[4] 
0 : "5" 
1 : "6" 
2 : "8" 
3 : "9" 

ここに私のコードです:

function editGigs(idArray) { 
    console.log(idArray); // Produces array correctly 
    $(idArray).each(function(k, v) { 
     trId = "'#row" + v + "'"; 
     console.log(trId); // Produces '#row5' 
     $(trId).find('.td.forename').css('background-color', 'black'); 
    }); 
} 

次のように私は、エラーを取得しています:

Uncaught Error: Syntax error, unrecognized expression: '#row5' 

しかし、私は '#row5'をコードセレクタとしてコード自体の最後の行に追加します。 idセレクタとしてjQueryの各関数の値を使用する方法で何かが間違っているように見えます。追加その際、

trId = "#row" + v; 

文字列がすでに二重引用符、デフォルトで""を持っているので:

trId = "'#row" + v + "'"; 

は次のようになります。

+2

単引用符を削除する - > 'trId =" #row "+ v;' – Andreas

+1

jQueryは文字列ではなく、DOMElementsの配列を期待しているので、 '$(idArray) 'idArray.forEach()'や単純なforループを代わりに使うことができます –

+0

ありがとう@Andreas - それで...なぜシングルクォートを削除する必要がありますか? – jonhendrix

答えて

1

あなたはセレクタに''を単一引用符を使用する必要はありませんその結果は無効なセレクタになります。

$("'#rowV'") 

これが役立つことを願っています。

関連する問題