2012-01-13 5 views
2
$('.list-links-nested a').each(function(){  
    currentPage(this); 
}); 

$("#menu-main > li > a").each(function(){ 
    currentPage(this); 
}); 

$("#menu-sub a").each(function(){  
    currentPage(this);   
}); 

함수를 반복하는 대신 더 나은 방법으로 작성하는 방법에 대한 제안은 무엇입니까?jQuery :이 .each() 블록을 작성하는 더 좋은 방법은 무엇입니까?

업데이트 코드 작동 : 따르면 http://api.jquery.com/multiple-selector/

$("#menu-sub a,#menu-main > li > a,.list-links-nested a").each(function(){  
     currentPage(this);   
    }); 
+0

감사합니다! 그것은 작동합니다. – Bongbong

답변

1

문자열에 쉼표를 사용하여 여러 선택기를 제공 할 수 있습니다. 대신 당신이 전달 된 인수의,

$(".list-links-nested a, #menu-main > li > a, #menu-sub a").each(currentPage); 

또한 인수 자체로 currentPage를 전달할 수 있습니다 직접 this를 사용합니다.

+0

이것은 어떤 이유로 작동하지 않습니까? – Bongbong

+0

익명 함수를 통해 전달하지 않고'currentPage'에서'this'를 사용하여 제가 언급 한 변경을하면 작동합니다. – Dennis

+0

고마워요, Dennis. 더 짧아. – Bongbong

0

:

var links = $(".list-links-nested a, #menu-main > li > a"); 
links.each(currentPage); 
0
당신은 한 번에 여러 가지를 선택하여 CSS 선택기에 쉼표를 사용할 수 있습니다

, http://www.w3.org/TR/CSS2/selector.html#grouping 참조 :

$('.list-links-nested a, #menu-main > li > a, #menu-sub a').each(function(){  
    currentPage(this); 
}); 
0
 

$(".list-links-nested a, #menu-main > li > a, #menu-sub a").each(function() { 
    currentPage(this); 
}); 
 

참고 : 모든 팁 Multi Selectors

관련 문제