我有一个构造,检查是否选中了复选框(谁可以使用更多单词'check'以便彼此接近?=))当文档加载时,如果选中它,表中的某些行会被隐藏。它看起来像这样:
if (jQuery('#navbar_disabled').is(':checked')) {
jQuery('#navbar_disabled').parents('tr').prev().hide();
jQuery('#navbar_disabled').parents('tr').prev().prev().hide();
}
我确信有一种快速的方法可以摆脱那些最后的'#navbar_disabled'并使用类似'this'之类的内容。我知道我可以使用类似var navbar_checkbox_disabled=jQuery('#navbar_disabled')
的东西来处理它,但我正在寻找一个更可爱的解决方案,如果它在那里。感谢。
更新:为什么我要求的另一个解决方案,而不仅仅是将其分配给一个新变量,我需要在许多元素上使用它,如下所示:
jQuery('#company_address_disabled, #sociallinks_disabled, #contacts_mail_disabled, #navbar_disabled')
答案 0 :(得分:4)
为什么不将它用作过滤器,如果未检查它将使jQuery对象为空:
jQuery('#navbar_disabled:checked').parents('tr').prev().hide().prev().hide();
答案 1 :(得分:1)
这样的事可能!?
$tr = $('#navbar_disabled').parents('tr').prev();
if ($('#navbar_disabled').is(':checked')) {
$tr.hide();
$tr.prev().hide();
}
编辑:
你认为在这些元素上添加课程吗?我想你的代码看起来像这样:<tr class='hide_me'><td>prev</td></tr>
<tr class='hide_me'><td>prev</td></tr>
<tr><td><input id="navbar_disabled" /></td></tr>
if ($('#navbar_disabled').is(':checked')) {
$('.hide_me').hide();
}