获取一个空的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(); } }); }); });