Вопрос выбора jQuery - PullRequest
       3

Вопрос выбора jQuery

0 голосов
/ 08 июля 2010

У меня есть следующий код jQuery, который все прекрасно работает:

         $("#sidebar .m3, #sidebar .m5").toggle(function() {                  
               $(this).find("img").attr({­src:"images/Up.png"});                 
               }, function() {
               $(this).find("img").attr({­src:"images/Down.png"});                  
         }); 

Мой вопрос, вместо того, чтобы отдельно указывать $ ("# sidebar .m3, #sidebar .m5"), где мои пункты менюможет иметь классы m1, m2, m3, m4, m5 и т. д., есть ли в любом случае что-то вроде:

$("#sidebar .m[*]").

Это будет обслуживать любое число после «.m», поэтому я ненужен жесткий код м3 или м5?

спасибо.

Ответы [ 4 ]

5 голосов
/ 08 июля 2010

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

$('#sidebar [class^=m]')...

Лучшим способом было бы дать им всем общий класс, такой как menu-item, в дополнение к вашему другому классу, который функционирует просто как селектор для группировки их всех, а затем просто используйте:

$('#sidebar .menu-item')...
3 голосов
/ 08 июля 2010

Вы также можете сделать это:

$(".m3, .m5", "#sidebar")

Но ... вы не ограничены одним классом, вы можете просто использовать несколько? Чтобы использовать несколько классов, просто поставьте между ними пробел, например:

<div class="m5 myClass">Stuff</div>
<div class="m3 myClass">Stuff 2</div>

Тогда вы можете использовать этот класс, например:

$("#sidebar .myClass")

Или, скажем, ваша структура выглядит следующим образом:

<div id="sidebar">
  <div class="m5">Stuff</div>
  <div class="m3">Stuff 2</div>
</div>

Вы можете просто использовать дочерний селектор , например:

$("#sidebar > div")

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

2 голосов
/ 08 июля 2010

Можете ли вы заняться этим немного по-другому ???

Если у вас есть возможность манипулировать вашим HTML, можно добавить дополнительный класс ко всем элементам меню в качестве заполнителя (например, вызвать класс 'm ').

Это позволит вам выполнить поиск по: $ ("# sidebar .m)

0 голосов
/ 08 июля 2010

Вы можете использовать селектор начинается с:

$("#sidebar *[class^='m']")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...