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('');