выберите элемент с jquery, который имеет несколько классов - PullRequest
4 голосов
/ 31 января 2012
$(".status").attr("rel");

.status может содержать до трех других дополнительных классов. .online, .away, .offline

если я сделаю это:

$(".status.online").attr("rel");

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

Ответы [ 5 ]

8 голосов
/ 31 января 2012

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

$(".status").attr("rel");

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

$(".status.online, status.offline, .status.away").attr("rel");
2 голосов
/ 31 января 2012

Вы можете отфильтровать результаты для дополнительных классов.Я думаю, что это то, что вы хотите сделать.В основном это говорит, достань мне все элементы с классом status.Затем возьмите эти результаты и верните мне только те, которые также есть в сети, в гостях или в автономном режиме.

$(".status").filter('.online, .away, .offline');
1 голос
/ 21 сентября 2012

Мы можем использовать ..

$('.status').filter('.online, .offline, .away').each(function(){
    alert($(this).html());
    });'

Он будет оповещать div HTML.

0 голосов
/ 31 января 2012

Я думаю, что-то вроде этого.

$(".status:regex(class, (online|offline))").attr("rel");

Тревор: Я пока не могу комментировать, поэтому: То, что вы сделали, будет искать 3 разных класса, которые возвращают более одного объекта, а не один с 3 классами

0 голосов
/ 31 января 2012

Как насчет

$("status.online, .status.away, .status.offline");

или

$('.status').filter('.online, .offline, .away');

http://jsfiddle.net/nJcSp/1/

...