Jquery 如何使此代码更加紧凑
我有一个结构,当文档加载时,检查复选框是否被选中(谁可以使用更多彼此如此接近的单词“check”?=),如果选中,表中的某些行将被隐藏。看起来是这样的:Jquery 如何使此代码更加紧凑,jquery,html,css,Jquery,Html,Css,我有一个结构,当文档加载时,检查复选框是否被选中(谁可以使用更多彼此如此接近的单词“check”?=),如果选中,表中的某些行将被隐藏。看起来是这样的: if (jQuery('#navbar_disabled').is(':checked')) { jQuery('#navbar_disabled').parents('tr').prev().hide(); jQuery('#navbar_disabled').parents('tr').prev().prev
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\u checkbox\u disabled=jQuery(“#navbar\u disabled”)
的方法来处理它,但我正在寻找一个更可爱的解决方案,如果有的话。谢谢
更新:我之所以要求使用另一种解决方案,而不仅仅是将其分配给一个新变量,是因为我需要在许多元素上使用它,例如:
jQuery('#company_address_disabled, #sociallinks_disabled, #contacts_mail_disabled, #navbar_disabled')
<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();
}
也许是这样的
$tr = $('#navbar_disabled').parents('tr').prev();
if ($('#navbar_disabled').is(':checked')) {
$tr.hide();
$tr.prev().hide();
}
编辑:
您是否想过在这些元素上添加类!?我想您的代码如下所示:
jQuery('#company_address_disabled, #sociallinks_disabled, #contacts_mail_disabled, #navbar_disabled')
<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();
}
prev
上
如果($(“#导航栏已禁用”)。为(“:已选中”){
$('.hide_me').hide();
}
可能是这样的吧
$tr = $('#navbar_disabled').parents('tr').prev();
if ($('#navbar_disabled').is(':checked')) {
$tr.hide();
$tr.prev().hide();
}
编辑:
您是否想过在这些元素上添加类!?我想您的代码如下所示:
jQuery('#company_address_disabled, #sociallinks_disabled, #contacts_mail_disabled, #navbar_disabled')
<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();
}
prev
上
如果($(“#导航栏已禁用”)。为(“:已选中”){
$('.hide_me').hide();
}
为什么不将其用作过滤器,如果未选中,将使jQuery对象为空:
jQuery('#navbar_disabled:checked').parents('tr').prev().hide().prev().hide();
为什么不将其用作过滤器,如果未选中该过滤器,将使jQuery对象为空:
jQuery('#navbar_disabled:checked').parents('tr').prev().hide().prev().hide();
我知道这个变体,但是如果它存在的话,我在寻找其他的变体。谢谢。我知道这个变体,但是如果它存在的话,我正在寻找其他的。谢谢。哇,你只是一个大师,我相信我永远不会意识到这一点,谢谢。这么可爱,小巧,做我需要的!哇,你只是一个大师,我相信我永远不会意识到这一点,谢谢。这么可爱,小巧,做我需要的!