jQuery:如何组合两行代码(使用相同的目标)

时间:2015-05-31 08:37:53

标签: jquery jquery-selectors

我是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();

有人可以告诉我这里做错了吗?

非常感谢, 麦克

1 个答案:

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