2012-01-13 2 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()?

Обновленный код и он работает:

var links = $(".list-links-nested a, #menu-main > li > a"); 
links.each(currentPage); 
+0

Спасибо всем за советы! оно работает. – Bongbong

ответ

1

Вы можете использовать запятую в своей строке, чтобы предоставить несколько селекторов.

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

Вы также можете передать currentPage как сам аргумент и использовать this непосредственно, вместо аргумента вы мимоходом.

+0

это не работает по какой-то причине? – Bongbong

+0

Он работает, если вы сделаете изменение, о котором я упомянул, используя 'this' в' currentPage' вместо того, чтобы передавать его через анонимную функцию. – Dennis

+0

Спасибо, что работает, Деннис. Короче. – Bongbong

2

JQuery позволяет использовать несколько селекторов, разделенных запятой (».class1, .class2")

ссылка: http://api.jquery.com/multiple-selector/

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

самые быстрые пальцы: P/лук – Treemonkey

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); 
}); 
 

Ref: Multi Selectors