2012-01-16 92 views
0
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(); 
    } 
} 

Instad使用if语句重复addClass(),如何将show()添加到第一个类的“more-options”类的父级?jQuery:如何将这两个语句合并为一个?

回答

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(); 
} 
+0

反正有链接在一个而不是两个单独的声明吗? – Bongbong 2012-01-16 12:25:11

+0

@丰宝看更新! – 2012-01-16 12:36:27

+0

好的,谢谢你的提示,Rich。 – Bongbong 2012-01-16 13:29:54

相关问题