好不容易想出来的一个 jQuery Selector

我们都知道因为 IE6 的 BUG,显示页面内的 div 对话框之前要先把页面当中的 select 元素都隐藏掉。在 jQuery 中就是:

$('select').hide();

 当关闭对话框时,就要:

$('select').show()
 

但是出于业务逻辑,打开 div 对话框之前就有某些 select 已经隐藏起来,当对话框关闭后,这些 select 不应该显示。所以隐藏 select 的时候就只能隐藏那些显示出来的 select,并把它们保存起来:

window.hiddenSelects = $('select:visible');
window.hiddenSelects.hide();

关闭对话框时:

window.hiddenSelects.show();
 

这里 jQuery 有一点小问题:对话框中包含的 select 虽然是隐藏的,但实际上因为它们本身没有隐藏的样式属性,所以 jQuery 仍然认为它们是可见的。于是打开对话框后,对话框中的 select 被一并隐藏了。所以在打开对话框时应该这样:

window.hiddenSelects = $('select:visible').filter(':not(div.innerdialog select)');
window.hiddenSelects.hide();
 

这样就把 div.innerdialog 里面的 select 排除掉了。

 

jQuery 真的是方便啊。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值