如何处理$(未定义)?

时间:2011-07-14 04:11:17

标签: jquery undefined undefined-behavior

我在下面的语句中偶然遇到了$(undefined),其中params是一个对象:

var $this = $(params._this) || $(this);

这不起作用,因为$(params._this)是一个jQuery对象,并且总是被评估为true

有趣的是,我不确定如何检查它。它不是空对象(即$.isEmptyObject($(undefined)) == false),也不是函数或“普通对象”(即$.isPlainObject())。

我最后将声明修改为以下内容:

var $this = (params._this == undefined) ? $(params._this) : $(this);

我的问题是,有没有办法“评估”(不确定使用哪个词)$(undefined)?对此有用吗?

3 个答案:

答案 0 :(得分:7)

var $this = $(params._this || this);

答案 1 :(得分:2)

$(undefined)只是一个空的jQuery对象;它相当于$()。有时它会在常用习语$(document)中使用,而不是$(document).ready(...)

答案 2 :(得分:0)

在你的情况下,最合适的方式似乎是DanC所说的,但你可以通过检查它的选择器来检查未定义的jquery对象:

$(undefined).selector == ''

在你的情况下:

var $this = $(params._this).selector != '' ? $(params._this) : $(this);