Jquery селекторы в цикле дают неясные результаты - PullRequest
2 голосов
/ 05 января 2011

Я запутался: что происходит со следующим кодом

var ProductFeatures = [];

for (var i = 1; i < 3; i++) {
    ProductFeatures.push({
        Guid: $('#FeatureListTable tr').eq(i).attr('id'),
        Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),
        Remark: $('#FeatureListTable td:nth-child(6) input').eq(i-1).val()
    });
}

Когда я закомментирую строку «Значение:», я получаю другой результат в поле «Замечание», чем когда комментариев нет

// Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

Почему это происходит?

Заранее спасибо, Джулиан

1 Ответ

0 голосов
/ 05 января 2011

Не уверен, почему значение Remark изменится, когда вы закомментируете строку Value, но эта строка:

Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

... вернет только null или undefined (Я не помню, какой именно), потому что он пытается получить value из <td> вместо ввода формы.

Этот тип структуры данных гораздо лучше построен с использованием jQuery .map()способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...