2011-12-30 3 views
1

Изменения плагина JQuery, у меня есть строки кода следующим образом:переменной JavaScript становится нулевой, когда toUpperCase() применяется

var currentread = (self).find('.c'+a).html(); 
//currentread = currentread.toUpperCase(); 
$('#output').html(currentread); 

С средней линией закомментированной, код работает отлично. Содержимое div с классом 'c [1-n]' отображается в #output. Однако, раскомментируя среднюю строку для преобразования этого в верхний регистр, генерируется ошибка «currentread is null» для этой строки.

Я, должно быть, здесь делаю что-то глупое, но это, похоже, не имеет смысла. Есть идеи?

+3

Почему вы конвертируете html в верхний регистр? Вы имели в виду использовать 'text()'? –

+1

переменная не может «стать нулевой» при вызове '.toUpperCase()' - она ​​должна была быть пустой. – Alnitak

+0

Вы тоже html. http://www.jsfiddle.net – abuduba

ответ

8

Это просто случай, когда currentread есть null? Вы можете изменить его на:

currentread = (currentread || "").toUpperCase() 

так что toUpperCase всегда вызывается в строке.

+0

текущийread не null до этого средний линия ввод, отсюда путаница. – Dan

+0

Откуда вы знаете, что это уже не «нуль»? 'jQuery (". no-items-have-this-class "). html()' возвращает null. Вы не получите ошибку, если вы передадите 'null' в' .html() ', но вы будете, если попытаетесь вызвать метод на нем. – Douglas

+0

Поскольку параметр #output его значение отображает его правильно. Или я чего-то не хватает? – Dan

Смежные вопросы