Передача числовой переменной в jQuery

Почему я не могу передать переменную num этой функции следующим образом:

    function getColumnData(num) {
    var colVals = $('#newtable td:nth-child(num)').map(function(){
       return $(this).text();
    }).get();
    alert(colVals);
    }

Есть ли простой способ обойти это?

Благодарю.

3 ответа

Решение

Вам необходимо объединить значение num со строкой селектора:

var colVals = $('#newtable td:nth-child(' + num + ')').map(function() {
    //Do stuff
});

В настоящее время у вас есть строковый литерал "#newtable td:nth-child(num)" вместо того, что имеет смысл для механизма выбора, например "#newtable td:nth-child(2)".

Поскольку ваш селектор jQuery является строкой, вам нужно "собрать" его, используя конкатенацию, например:

$('#newtable td:nth-child(' + num + ')')

Иначе num это просто некоторые символы в строковом литерале.

Попробуйте на линии 2

var colVals = $('#newtable td:nth-child(' + num + ')').map(function(){
Другие вопросы по тегам