2013-12-11 41 views
0

有沒有一種方法,我可以默認某種空選擇器,以便我仍然可以調用自定義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的新手,所以也許我在想錯誤的方法。他們是否有辦法做到這一點,所以我沒有得到錯誤,說我不能在一個無效的對象上調用函數?

謝謝。

回答

1

$()將返回一個沒有元素的空jQuery對象。

如果您的函數只調用其他jQuery方法,如each(),則不需要任何特殊處理;如果沒有任何元素,這些方法將不會執行任何操作。

如果您有其他邏輯,請檢查this.length

+0

謝謝你。我正在尋找這個。我的谷歌搜索一定是一帆風順的。 – Smith

0

你可以檢查jQuery返回的長度。

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

沒錯,但我希望不管是否存在函數調用。根據我的應用程序的狀態,用於提取選擇器的變量可能沒有任何值。 – Smith

相關問題