获取一个空的JQuery对象

在以下代码中,我在选择框上设置了更改处理程序,以根据选择的值显示和隐藏一些后续问题。

此外,对于某些选择值,还会显示一条额外的消息。

为了检查是否需要隐藏额外的消息,我保留一个名为Previous的变量。 在执行处理程序时,我检查以查看Previous是否为空或大小为0。

这将是很好的初始化一个空的JQuery对象,以便不必额外检查null。

做一个$()返回一个大小为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; } };

但这似乎是矫枉过正。


这会创建一个空的jQuery对象:

$([])

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

$()

$();

返回空集

从jQuery 1.4开始,调用没有参数的jQuery()方法会返回一个空的jQuery集(具有0的.length属性)。 在之前的jQuery版本中,这将返回一个包含文档节点的集合。

资料来源:api.jquery.com


我的建议是不要那样做。 有很多简单的方法来做到这一点。 考虑:

<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();
      }
    });
  });
});
链接地址: http://www.djcxy.com/p/96341.html

上一篇: Getting an empty JQuery object

下一篇: How can I disable a button in a jQuery dialog from a function?