Как выбрать имена классов с пробелами и использовать подстановочный знак - PullRequest
1 голос
/ 16 августа 2010

В приведенном ниже фрагменте html я пытаюсь создать выражение JQuery для выделения всех тегов с классом zz1_TopNavigationMenu_1 Napa1-topnav zz1_TopNavigationMenu_ * "

Я не понимаю, как создать синтаксис выбора, содержащий пробелы в классеname. Мне также нужен подстановочный знак в конце, который изображен выше символом '*' в конце.

<table class="Napa1-topnav zz1_TopNavigationMenu_4" border="0" cellSpacing="0" cellPadding="0">
<tbody>
<tr>
<td style="white-space: nowrap;">
<a class="zz1_TopNavigationMenu_1 Napa1-topnav zz1_TopNavigationMenu_3" style="border-bottom-style: none; border-right-style: none; border-top-style: none; font-size: 1em; border-left-style: none;" href="/sites/Brand1/SubSite

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

символ пробела недопустим в имени класса;это разделитель.Тег может содержать несколько имен классов.Например, <a id="foobar" class="foo bar"> имеет два класса: foo и bar, следовательно, $('#foobar').getClasses() будет иметь два имени класса.

Итак, если вы хотите выбрать элементы с одним классом, вы делаете:*

Если вы хотите выбрать элементы с несколькими классами, вы делаете:

$('.foo.bar')
0 голосов
/ 16 августа 2010

Если это только 3 класса, и вы уверены, что они появятся в таком порядке, вы можете использовать attribute-starts-with селектор.

Попробуйте это:

$('a[class^=zz1_TopNavigationMenu_1 Napa1-topnav zz1_TopNavigationMenu_]')

Это выберет <a> элементов, где атрибут class начинается с zz1_TopNavigationMenu_1 Napa1-topnav zz1_TopNavigationMenu_.

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

$('a.zz1_TopNavigationMenu_1.Napa1-topnav').filter(function() {
    return /zz1_TopNavigationMenu_\d+$/.test($(this).attr('class'));
});
0 голосов
/ 16 августа 2010

.zz1_TopNavigationMenu_1.Napa1-topnav.zz1_TopNavigationMenu_whatever

Получит вам элементы, которые имеют все 3 из этих классов.Подстановочный знак не работает - для этого нет возможности использовать CSS-селекторы.Я бы добавил класс чего-то вроде: zz1_TopNavigationMenu, и тогда все, что было бы также zz1_TopNavigationMenu_whatever, получило бы этот класс группировки.ИЛИ, если возможно, вы можете использовать идентификаторы или элементы, чтобы получить их все.Например, если идентификатор меню ожидает, что все они будут li элементами, вы можете использовать: .zz1_TopNavigationMenu_1.Napa1-topnav li или что-то подобное.

Взгляните на документы на селекторах css дляиспользовать с jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...