jQuery: 如何合并两行代码(目标相同)
jQuery: How to combine two lines of code (with same target)
我是 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();
谁能告诉我我做错了什么?
非常感谢,
麦克
你应该先调用$.fn.hide()
方法,然后找到children并执行所需的操作。
$(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('');
我是 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();
谁能告诉我我做错了什么?
非常感谢, 麦克
你应该先调用$.fn.hide()
方法,然后找到children并执行所需的操作。
$(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('');