获取一个空的 JQuery 对象

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

此外,对于选定内容的某些值,会显示一条额外的消息。

为了检查是否需要隐藏额外的消息,我保留了一个名为“上一个”的变量。在执行处理程序时,我检查上一个是否为空,或者大小是否为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; } };

但这有点过头了。

50926 次浏览

这将创建一个空的 jQuery-object:

$([])

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

$()

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

<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();
}
});
});
});
$();

返回空集

从 jQuery 1.4开始,不带参数调用 jQuery()方法将返回一个空 jQuery 集(.length属性为0)。在早期版本的 jQuery 中,这将返回一个包含文档节点的集合。

资料来源: Api.jquery.com

试试这个

 var new = $([]);

我不是一个好的程序员,但它给你空对象:))