是否有一个空的Jquery选择器?

时间:2013-12-11 17:33:41

标签: jquery

有没有一种方法可以默认为某种空选择器,这样我仍然可以在其上调用自定义jQuery函数,但在这些函数中我只能检查它是否有效。

我知道在进行函数调用之前我可以检查选择器是否有效但我宁愿在函数中处理一次,这样我的代码看起来更干净而且我不必记得检查它是否有额外的功能调用

说我有以下内容......

$.fn.Foo = function() { ... });

var $selector = someVariable != null ? $('# + someVariable') : emptySelector???

这样我就可以......

$selector.Foo();

在我的功能中,我可以检查它是否有效......

$.fn.Foo = function() { 

     if ($(this) is a valid selector)
       // execute the code

});

我是jQuery的新手,所以也许我在想错误的方法。他们有没有办法这样做,所以我不会得到错误,说我无法在无效对象上调用该函数?

感谢。

2 个答案:

答案 0 :(得分:1)

$()将返回一个没有元素的空jQuery对象。

如果你的函数只调用其他jQuery方法,如each(),你不需要任何特殊的处理;如果没有任何元素,那些方法将不会做任何事情。

如果您有其他逻辑,请检查this.length

答案 1 :(得分:0)

您可以检查jQuery返回的长度。

var $mightExist= $('.might-exist');
if ($mightExist.length > 0) {
  // It exists!
}