2015-03-02 162 views
1

我在JS中使用.length屬性得到一些奇怪的行爲,只是想知道是否有人可以澄清爲什麼我得到我正在做的結果。在JS中,什麼導致這種奇怪的行爲.length?

這不起作用:

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

ticketsProductName.length返回undefined,因此語句失敗每次。

但是......

這並不工作:

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

,併產生期望的結果。

有人請解釋爲什麼我可以將#ticketsProductName的修剪值放入ticketsProductName變量中,但稍後不會調用.length?還是我錯過了一些真正難以理解的東西?

在此先感謝。

+1

對象的價值是什麼? – 2015-03-02 16:50:28

+1

你可以請創建一個jsfiddle重現該問題? – thefourtheye 2015-03-02 16:50:39

+1

我不認爲這會發生。 – Pointy 2015-03-02 16:51:09

回答

1

這些語句是等價的,除了這個例子之外,代碼中的任何錯誤都必須發生。如果我猜測我會說選擇器什麼都沒有返回,並且val()是無效的。

相關問題