是什么原因导致JS中的.length出现奇怪的行为?

时间:2015-03-02 16:49:21

标签: javascript

我在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 个答案:

答案 0 :(得分:1)

语句是等效的,除了这个例子,代码中必须发生任何错误。如果我猜测我会说选择器没有返回任何内容而val()无效。