获取一个空的JQuery对象
在下面的代码中,我在select框上设置了一个更改处理程序,以根据select的值显示和隐藏一些后续问题。
此外,对于select的一些值,还有一个额外的消息被显示。
为了检查是否需要隐藏额外的消息,我保留了一个名为Previous的variables。 在执行处理程序时,我检查前面是否为空或者大小是否为0。
这将是很好的初始化一个空的JQuery对象,以便不必额外检查null。
做一个$()返回一个大小为1的对象。
有没有办法创build一个空的JQuery对象?
//初始化函数
$(函数(){
//保留之前select的对象以进行帐户typesselect。
var Previous = null; //这里是我想要初始化的地方
//像Previous = $();
$( “SELECT [名= 'ACCOUNTTYPE']”)。变化(
function(){
//隐藏上一条消息,如果有的话。
if(Previous == null || Previous.size()> 0){
Previous.hide();
}
//显示消息,如果find并保存为前。
Previous = $(“#”+ this.value +“_ Msg”)。show();
//获取最新的问题
var FirstQuestion = $(“。FirstQuestion”);
if(this.value ===''){
FirstQuestion.hide();
}其他{
//手动显示FirstQuestion。
FirstQuestion.show();
}
});
}
在最糟糕的情况下,我可以这样做:
var Previous = {size:function(){return 0; }};
但这似乎是矫枉过正。
这会创build一个空的jQuery对象:
$([])
更新:在较新版本的jQuery(1.4+)中,可以使用:
$()
$();
返回一个空集
从jQuery 1.4开始,调用不带参数的
jQuery()方法返回一个空的jQuery集合(具有0的.length属性)。 在以前的jQuery版本中,这将返回一个包含文档节点的集合。
资料来源: api.jquery.com
我的build议是不要这样做。 有很多简单的方法来做到这一点。 考虑:
<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(); }); });
更容易。 基本上给class级指出什么显示和隐藏,然后没有跟踪要求。 另一种方法是:
$(function() { $("#select").change(function() { var val = $(this).val(); $("div").each(function() { if ($(this).hasClass(val)) { $(this).show(); } else { $(this).hide(); } }); }); });