从一个父级链接jquery方法的更好方法

时间:2014-10-22 13:35:01

标签: jquery jquery-selectors jquery-events

我总是习惯于从一个父母(在我的情况下是vehiclesParent)开始,在一个新行中编写事件,通常用于.find()函数:

 var vehiclesParent = $(this).parents('.services-content.vehicles');
        if (vehiclesParent.length > 0) {
            vehiclesParent.find('.offices-select-copy').val('0').trigger('change').css('margin', '42px 32px 0 0');
            vehiclesParent.find('.copy-now').hide();
            vehiclesParent.find('.cancel-vehicles-tab').css('margin', '-30px 0');
        }

有更好的方法来重现这个吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您正在寻找end()方法,以便您可以继续链接而不是重复使用可变量

var vehiclesParent = $(this).parents('.services-content.vehicles');
    if (vehiclesParent.length > 0) {
        vehiclesParent.find('.offices-select-copy').val('0').trigger('change').css('margin', '42px 32px 0 0')
       .end().find('.copy-now').hide()
       .end().find('.cancel-vehicles-tab').css('margin', '-30px 0');
    }

旁注:有关变量与end()

的争论

我个人同时使用 -

  • 我在代码中不再需要选择时使用.end(),因此您不必引入变量。
  • 当我必须在我的代码中的其他位置再次使用选择时,我使用变量

在已将参考文献存储到变量中时使用.end()并没有多大意义。

因此,简而言之,当您可以在单行执行操作时使用end(),并且不需要在代码中稍后访问该集合。我通常将jquery变量命名为$elements,我不喜欢在代码中看到很多变量。