jQuery: конкатенация приводит к неопределенности - PullRequest
1 голос
/ 29 ноября 2010

Я пытаюсь отобразить 10 опционных тегов в выборке. notaDt.text () является текущим значением. Поэтому, если это значение соответствует i , на дисплее отображается «выбранный».

var n, select, option;              
for(var i=10; i>=1; i--) {  
    n = notaDt.text();
    select = ( i == n ? "selected" : "");
    option = option + '<option value="' + i + '" ' + select + ' >' + i + '</option>';
}

Проблема в option = option + ... Возвращает "undefined" при вызове (как показано ниже), но все работает нормально.

http://img821.imageshack.us/img821/2951/screenshot20101129at749.png

Есть ли другие способы конкатенации, которые я мог бы попытаться не получить это сообщение? Спасибо!

Ответы [ 3 ]

4 голосов
/ 29 ноября 2010

Вам нужно начать с пустой строки для option, например:

var n, select, option = "";  

В противном случае при первом объединении с option (в этот момент, будучи undefined) вы получите"undefined" для начала вашей строки, так как вы получите результат toString undefined.

3 голосов
/ 29 ноября 2010

Вам нужно установить option в исходную пустую строку - как это:

var n, select, option = "";

А почему бы не использовать += вместо option = option + - это только мое мнение.

0 голосов
/ 29 ноября 2010

Первоначально опция не определена до первой конкатенации.Почему бы вам изначально не установить пустую строку?

var n, select;
var option = "";
for(var i=10; i>=1; i--) {  
    n = notaDt.text();
    select = ( i == n ? "selected" : "");
    option = option + '<option value="' + i + '" ' + select + ' >' + i + '</option>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...