次のように num 変数をこの関数に渡すことができないのはなぜですか。
function getColumnData(num) {
var colVals = $('#newtable td:nth-child(num)').map(function(){
return $(this).text();
}).get();
alert(colVals);
}
これを回避する簡単な方法はありますか?
ありがとう。
num
の値をセレクター文字列と連結する必要があります。
var colVals = $('#newtable td:nth-child(' + num + ')').map(function() {
//Do stuff
});
現在、「#newtable td:nth-child(2)」などのセレクタ エンジンにとって意味のある文字列リテラルではなく、「#newtable td:nth-child(num)」という文字列リテラルがあります。
jQuery セレクターは文字列であるため、次のように連結を使用して「ビルド」する必要があります。
$('#newtable td:nth-child(' + num + ')')
それ以外の場合num
は、文字列リテラルの一部の文字です。
2行目で試す
var colVals = $('#newtable td:nth-child(' + num + ')').map(function(){