jQuery:如何将这两个语句合并为一个?

时间:2012-01-16 12:13:04

标签: jquery

if($(this).parents("ul").closest("#menu-main").length){
  var parent = $(this).parent();

  parent.addClass("current");

  if(parent.hasClass("more-options")){
    $(parent).siblings(".more-options-page").addClass("current").show();
  }
}

不是用if语句重复addClass(),而是如何将show()添加到第一个带有“more-options”类的父级?

1 个答案:

答案 0 :(得分:1)

如果您愿意,可以将所有必要的方法调用链接起来(将可选过滤器提供给the parent method):

if ($(this).parents("ul").closest("#menu-main").length) {
  $(this).parent().addClass("current");
  $(this).parent(".more-options").show().siblings(".more-options-page").addClass("current").show();
}

<强>更新

是的,它可以在一行中完成,但不完全可读:

if ($(this).parents("ul").closest("#menu-main").length) {
  $(this).parent().addClass("current").filter(".more-options").show().siblings(".more-options-page").addClass("current").show();
}
相关问题