我是jQuery的新手,我正在尝试合并以下两行代码,因为它们都定位同一个div($(this).closest('div.col-9').nextAll('div.hiddenDiv')
),我还有其他类似的情况减少代码:
$(this).closest('div.col-9').nextAll('div.hiddenDiv').find('input, select, textarea').removeProp('checked').removeProp('selected').not(':button, :checkbox, :hidden, :radio, :reset, :submit').val('');
$(this).closest('div.col-9').nextAll('div.hiddenDiv').hide();
上面写的方式很好,所以我可能用错误的方式组合它 我尝试了以下两种情况,但都失败了:
$(this).closest('div.col-9').nextAll('div.hiddenDiv').find('input, select, textarea').removeProp('checked').removeProp('selected').not(':button, :checkbox, :hidden, :radio, :reset, :submit').val('').end().hide();
$(this).closest('div.col-9').nextAll('div.hiddenDiv').find('input, select, textarea').removeProp('checked').removeProp('selected').not(':button, :checkbox, :hidden, :radio, :reset, :submit').val('').hide();
有人可以告诉我这里做错了吗?
非常感谢, 麦克
答案 0 :(得分:2)
您应首先调用$.fn.hide()
方法,然后找到子项并执行必要的操作。
$(this)
.closest('div.col-9')
.nextAll('div.hiddenDiv')
.hide() //<=----------------------- Call Hide method
.find('input, select, textarea')
.removeProp('checked')
.removeProp('selected')
.not(':button, :checkbox, :hidden, :radio, :reset, :submit')
.val('');