2015-03-02 3 views
1

Я получаю странное поведение с свойством .length в JS, просто интересно, может ли кто-нибудь объяснить, почему я получаю результаты, которые я делаю.Что вызывает это странное поведение с .length в JS?

Это не работает:

var ticketsProductName = $.trim($('#ticketsProductName').val()); 
if (ticketsProductName.length <= 5) { 
    // Do error stuff 
} 

ticketsProductName.length возвращает неопределенное и, таким образом, утверждение терпит неудачу каждый раз.

Но ...

Это делает работу:

if ($.trim($('#ticketsProductName').val()).length <= 5) { 
    // Do error stuff 
} 

и дает желаемый результат.

Не могли бы вы объяснить, почему я могу поместить обрезанное значение #ticketsProductName в переменную ticketProductName, но не называть его позже? или я пропущу что-то действительно штопать очевидным?

Заранее спасибо.

+1

Какова ценность объекта? –

+1

Можете ли вы создать jsfiddle, чтобы воспроизвести проблему? – thefourtheye

+1

Я не думаю, что это может произойти. – Pointy

ответ

1

Утверждения эквивалентны, любые ошибки должны произойти в коде, кроме этого примера. Если бы я догадался, я бы сказал, что селектор ничего не возвращает и val() недействителен.

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