У меня есть некоторый код на моем сайте, который отображает список статей в блоге следующим образом (будет несколько объектов с одной и той же категории):JQuery селекторы, обобщая селектор на якорь 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>
у меня есть JQuery код, который фильтрует список, так что вы получите только отображается одна категория следующим образом:
$("#showall").click(function() {
$("ul.article").show('fast');
});
$("#showcategory1").click(function() {
$("ul.article.category1").show('fast');
$("ul.article").not("ul.category1").hide('fast');
});
При нажатии на соответствующую ссылку, т.е.
<a id="showall">All</a>
<a id="category1">Category 1</a>
В настоящее время у меня есть около 9 категорий для работы и 10 фрагментов jQuery, которые кажутся ужасно неэффективными (это is ужасно неэффективно). Я понятия не имею, как обобщить код так, чтобы он принял идентификатор (или, возможно, класс) якоря, а затем применил его к соответствующим спискам. Любая помощь, пожалуйста?
Спасибо!
Если вы используете '.siblings', вы можете связать последние две строки, чтобы быть' $ ("ul.article." + Cat) .show ('fast'). Siblings(). Hide ('fast'); ' –
Спасибо, это потрясающе :) Подгоняет, что .each (cats.split (" "), function (cat)) следует изменить на .each (cats.split (" "), function (i, cat)), чтобы сделать эту работу. – Josh