Я хочу получить имя класса с помощью jQuery
И если у него есть идентификатор
<div class="myclass"></div>
javascript
jquery
X10nD
источник
источник
parents()
.this.className
работает без JQuery (вернется"myclass"
в приведенном выше примере)Ответы:
После получения элемента в виде объекта jQuery другими средствами, чем его класс, затем
должен сделать свое дело. Для идентификации используйте
.attr('id')
.Если вы находитесь внутри обработчика событий или другого метода jQuery, где элемент является чистым DOM-узлом без оболочки, вы можете использовать:
Оба являются стандартными методами DOM и хорошо поддерживаются во всех браузерах.
источник
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
и комбинируете его,if(className.indexOf('Class_I_am_Looking_For') > = 0)
вы можете легко проверить наличие определенного класса и по-прежнему обрабатывать несколько классов.if(className.indexOf('Class_I_am_Looking_For') > = 0)
также будет соответствовать"This_Is_Not_the_Class_I_am_Looking_For"
Лучше использовать,
.hasClass()
когда вы хотите проверить, есть ли у элемента определенныйclass
. Это потому, что когда элемент имеет несколько,class
это не тривиально для проверки.Пример:
Куда:
С помощью
.hasClass()
мы можем проверить,div
имеет ли классdivhover
.источник
.is('.divhover')
Будьте осторожны, возможно, у вас есть класс и подкласс.
Если вы используете предыдущие решения, у вас будет:
Так что если вы хотите иметь селектор класса , сделайте следующее:
и у вас будет
Теперь, если вы хотите выбрать все элементы, которые имеют одинаковый класс, такой как div выше:
это значит
Обновление 2018
ИЛИ может быть реализовано с помощью ванильного JavaScript в 2 строки:
источник
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
, потому что пробел, Tab, LF, CR и FF могут разделять классы. (.split()
также принимает RegExps.)'.'+$('#id').attr('class').split(/\s+/).join('.')
было бы более кратким, не так ли? Или это будет соответствовать тому, о чем я не думаю?.attr('class').trim().split(...)
Это чтобы получить второй класс в несколько классов, используя элемент
источник
Вы можете просто использовать,
var className = $('#id').attr('class');
источник
Если у вас
<div>
естьid
:...ты можешь попробовать:
Если у вас
<div>
есть только одинclass
, вы можете попробовать:источник
Если вы собираетесь использовать функцию split для извлечения имен классов, вам придется компенсировать возможные вариации форматирования, которые могут привести к неожиданным результатам. Например:
производит
Я думаю, что вам лучше использовать регулярное выражение для сопоставления с набором допустимых символов для имен классов. Например:
производит
Регулярное выражение, вероятно, не завершено, но, надеюсь, вы понимаете мою точку зрения. Такой подход снижает вероятность плохого форматирования.
источник
Чтобы завершить ответ Whitestock (который я нашел лучше всего), я сделал:
Таким образом, для «myclass1 myclass2» результат будет «.myclass1 .myclass2»
источник
Вы можете получить имя класса двумя способами:
ИЛИ
источник
С помощью JavaScript
С помощью jQuery
ИЛИ
источник
Если вы не знаете имя класса, НО вы знаете идентификатор, вы можете попробовать это:
Затем позвоните, используя:
источник
Если вы хотите получить классы div, а затем хотите проверить, существует ли какой-либо класс, просто используйте.
например;
источник
Попробуй это
HTML
JQuery
источник
если у нас есть один или мы хотим первый
div
элемент, который мы можем использовать$('div')[0].className
в противном случае нам нуженid
этот элементисточник
Если у нас есть код:
чтобы взять имя класса с помощью jQuery, мы могли бы определить и использовать простой метод плагина:
или
Использование метода будет:
Мы должны заметить, что он вернет список классов в отличие от нативного метода element.className, который возвращает только первый класс прикрепленных классов. Поскольку к элементу часто присоединяется более одного класса, я рекомендую вам не использовать этот собственный метод, а element.classlist или метод, описанный выше.
Первый его вариант вернет список классов в виде массива, второй в виде строки - имена классов, разделенные пробелами:
Другое важное замечание: оба метода, а также метод jQuery
возвращает только список классов первого элемента, перехваченного объектом jQuery, если мы используем более общий селектор, который указывает на многие другие элементы. В таком случае мы должны отметить элемент, мы хотим получить его классы, используя некоторый индекс, например
Это зависит также от того, что вам нужно делать с этими классами. Если вы хотите просто проверить класс в списке классов элемента с этим идентификатором, вам просто нужно использовать метод hasClass:
как упомянуто в комментариях выше. Но если вам нужно взять все классы в качестве селектора, используйте этот код:
Результатом будет:
и вы можете получить его для динамического создания, например, конкретного правила переписывания CSS.
С уважением
источник
Это тоже работает.
источник
Лучший способ получить имя класса в javascript или jquery
attr()
Функция атрибута используется для получения и установки атрибута.источник
используйте как это: -
если вы использовали этот класс более одного раза, то используйте каждый оператор
источник