J'ai un code sur mon site qui affiche une liste d'articles sur un blog comme suit (il y aura plusieurs objets avec la même catégorie):sélecteurs jQuery, un sélecteur par généralisant l'ancre ID
<ul class="article category1">
<li> etc
<li>
</ul>
<ul class="article category2">
<li> etc
<li>
</ul>
<ul class="article category3">
<li> etc
<li>
</ul>
J'ai un code jQuery qui filtre la liste de sorte que vous obtenez seulement une catégorie affichée comme suit:
$("#showall").click(function() {
$("ul.article").show('fast');
});
$("#showcategory1").click(function() {
$("ul.article.category1").show('fast');
$("ul.article").not("ul.category1").hide('fast');
});
Lorsque vous cliquez sur le lien correspondant, à savoir
<a id="showall">All</a>
<a id="category1">Category 1</a>
Actuellement, j'ai environ 9 catégories à traiter et donc 10 extraits de jQuery qui semble horriblement inefficace (est horriblement inefficace). Je n'ai aucune idée de la façon de généraliser le code pour qu'il prenne l'ID (ou peut-être la classe) de l'ancre et l'applique ensuite aux listes pertinentes. Toute aide s'il vous plaît?
Merci!
Si vous utilisez '.siblings', vous pouvez chaîner les 2 dernières lignes ensemble pour être' $ ("ul.article." + Cat) .show ('rapide'). Siblings(). Hide ('fast'); ' –
Merci, c'est génial :) Heads que .each (chats.split (" "), fonction (chat)) doit être changé en .each (cats.split (" "), fonction (i, chat)) pour faire ce travail. – Josh