Как я могу выбрать элемент с несколькими классами в jQuery?

Если вы хотите сделать небольшую взломанную вещь, сделайте

class A(object):
    ...
some_func(A)

. Если вы хотите сделать что-то более сложное, вы можете использовать метакласс. Метакласс отвечает за манипулирование объектом класса, прежде чем он будет полностью создан. Шаблон должен быть:

class AType(type):
    def __new__(meta, name, bases, dct):
        cls = super(AType, meta).__new__(meta, name, bases, dct)
        some_func(cls)
        return cls

class A(object):
    __metaclass__ = AType
    ...

type является метаклассом по умолчанию. Экземпляры метаклассов являются классами, поэтому __new__ возвращает модифицированный экземпляр (в данном случае) A.

Подробнее о метаклассах см. В http://docs.python.org/reference /datamodel.html#customizing-class-creation.

1928
задан John Slegers 1 May 2018 в 10:11
поделиться

4 ответа

Если вы хотите сопоставить только элементы с обоими классами (пересечение, например, логическое И), просто запишите селекторы вместе без пробелов в между:

$('.a.b')

Порядок не имеет значения, поэтому вы также можете поменять местами классы:

$('.b.a')

Итак, чтобы сопоставить элемент div с идентификатором a с классами ] b и c , вы должны написать:

$('div#a.b.c')

(На практике вам, скорее всего, не нужно указывать это конкретное, и обычно достаточно одного идентификатора или селектора класса: $ ('# a') .)

2538
ответ дан 22 November 2019 в 20:02
поделиться

элемент var = document.querySelector (" .a.b");

0
ответ дан 22 November 2019 в 20:02
поделиться

Ваш код $(".a, .b") будет работать на ниже нескольких элементов (в то же время)

<element class="a">
<element class="b">

, если Вы захотите выбрать элемент, имеющий a и b оба класса как <element class="a b">, чем использование js без комы

$('.a.b')
2
ответ дан 22 November 2019 в 20:02
поделиться

Вы можете сделать это с помощью функции filter () :

$(".a").filter(".b")
168
ответ дан 22 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: