2009-05-22 41 views
106

在以下代碼中,我在選擇框上設置了更改處理程序,以根據選擇的值顯示和隱藏一些後續問題。獲取空的JQuery對象

此外,對於選擇的某些值,還會顯示一條額外的消息。

爲了檢查是否需要隱藏額外的消息,我保留一個名爲Previous的變量。在執行處理程序時,我檢查前面是否爲空或大小爲0.

初始化上一個空的JQuery對象以便不必執行額外的空值檢查會很好。

做一個$()返回的1

大小的物體有沒有一種方法創建一個空的jQuery對象?

 
//Init function. 
$(function(){ 
//Hold the previously selected object for the account type selection. 

var Previous = null; //Here is where I would like to initialize. 
         //something like Previous = $(); 


$("SELECT[name='AccountType']").change(
    function() { 
     //Hide Previous message if there was one. 
     if(Previous == null || Previous.size() > 0){ 
      Previous.hide(); 
     } 

     //Show the message if found and save it as previous. 
     Previous = $("#"+this.value+"_Msg").show(); 

     //Get fisrt question 
     var FirstQuestion = $(".FirstQuestion"); 
     if(this.value === ''){ 
      FirstQuestion.hide(); 
     }else{ 
      //Manually show FirstQuestion. 
      FirstQuestion.show(); 
     } 
    }); 
} 

在最壞的情況下,我可以做這樣的事情:

 
    var Previous = { size : function() { return 0; } }; 

,但似乎有點小題大做。

回答

197

這將創建一個空的jQuery對象:

​​

更新: 在jQuery中(1.4+)的新版本,你可以使用:

$() 
+6

+1可愛的回答,我決不會已經想到這一點:) – 2010-05-27 12:32:51

+0

我不明白這是怎麼從`$()不同`。任何人都可以投射燈光? – cregox 2011-03-02 00:40:15

3

我的建議是不要」不要這樣做。有很多簡單的方法來做到這一點。試想一下:

<select id="select" name="select"> 
    <option value="msg_1">Message 1</option> 
    <option value="msg_2">Message 1</option> 
    <option value="msg_3">Message 1</option> 
</select> 

<div class="msg_1 msg_3"> 
    ... 
</div> 

<div class="msg_1"> 
    ... 
</div> 

<div class="msg_2"> 
    ... 
</div> 

$(function() { 
    $("#select").change(function() { 
    var val = $(this).val(); 
    $("div." + val").show(); 
    $("div:not(." + val + ")").hide(); 
    }); 
}); 

許多容易。基本上給班級指出要顯示和隱藏的內容,然後不需要跟蹤。另一種方法是:

$(function() { 
    $("#select").change(function() { 
    var val = $(this).val(); 
    $("div").each(function() { 
     if ($(this).hasClass(val)) { 
     $(this).show(); 
     } else { 
     $(this).hide(); 
     } 
    }); 
    }); 
}); 
19
$(); 

返回一個空集

對於jQuery 1.4,調用jQuery()方法不帶參數返回一個空的jQuery集(爲0的.length屬性)。在之前的jQuery版本中,這將返回一個包含文檔節點的集合。

來源:api.jquery.com