Eu quero obter o nome da classe usando jQuery
E se tiver um id
<div class="myclass"></div>
javascript
jquery
X10nD
fonte
fonte
parents()
.this.className
funciona sem jquery (voltaria"myclass"
no exemplo acima)Respostas:
Depois de obter o elemento como objeto jQuery por outros meios que não sua classe, então
deve fazer o truque. Para o uso do ID
.attr('id')
.Se você estiver dentro de um manipulador de eventos ou outro método jQuery, em que o elemento é o nó DOM puro sem wrapper, poderá usar:
Ambos são métodos DOM padrão e são bem suportados em todos os navegadores.
fonte
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
e combiná-if(className.indexOf('Class_I_am_Looking_For') > = 0)
lo, poderá verificar facilmente a existência de uma classe específica e ainda lidar com várias classes.if(className.indexOf('Class_I_am_Looking_For') > = 0)
também irá corresponder"This_Is_Not_the_Class_I_am_Looking_For"
É melhor usar
.hasClass()
quando você deseja verificar se um elemento tem um determinadoclass
. Isso ocorre porque quando um elemento tem váriosclass
, não é trivial verificar.Exemplo:
Onde:
Com
.hasClass()
podemos testar se odiv
tem a classedivhover
.fonte
.is('.divhover')
Cuidado, talvez você tenha uma classe e uma subclasse.
Se você usar soluções anteriores, terá:
Portanto, se você deseja ter o seletor de classe , faça o seguinte:
e você terá
Agora, se você deseja selecionar todos os elementos que possuem a mesma classe, como div acima:
que significa
Atualização 2018
OR pode ser implementado com javascript vanilla em 2 linhas:
fonte
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
porque espaço, Tab, LF, CR e FF podem separar classes. (.split()
Também aceita expressões regulares.)'.'+$('#id').attr('class').split(/\s+/).join('.')
seria mais conciso, não seria? Ou seria algo que eu não estou pensando?.attr('class').trim().split(...)
Isso é para obter a segunda classe em várias classes usando em um elemento
fonte
você pode simplesmente usar,
var className = $('#id').attr('class');
fonte
Se você
<div>
possuiid
:...podes tentar:
Se o seu
<div>
tiver apenas umclass
, você pode tentar:fonte
Se você usar a função de divisão para extrair os nomes das classes, precisará compensar possíveis variações de formatação que possam produzir resultados inesperados. Por exemplo:
produz
Acho melhor você usar uma expressão regular para corresponder ao conjunto de caracteres permitidos para nomes de classe. Por exemplo:
produz
A expressão regular provavelmente não está completa, mas espero que você entenda meu argumento. Essa abordagem atenua a possibilidade de formatação incorreta.
fonte
Para completar a resposta do Whitestock (que foi a melhor que encontrei), fiz:
Portanto, para "minhaclasse1 minhaclasse2", o resultado será '.myclass1 .myclass2'
fonte
Você pode obter o nome da classe de duas maneiras:
OU
fonte
Com Javascript
Com jQuery
OU
fonte
Se você não souber o nome da classe, MAS você souber o ID, poderá tentar o seguinte:
Em seguida, chame-o usando:
fonte
Se você deseja obter classes de div e depois verificar se existe alguma classe, use simples.
por exemplo;
fonte
Tente
HTML
jQuery
fonte
se temos único ou queremos primeiro
div
elemento, podemos usar$('div')[0].className
caso contrário, precisamos de umid
desse elementofonte
Se tivermos um código:
para pegar o nome da classe usando jQuery, poderíamos definir e usar um método simples de plug-in:
ou
O uso do método será:
Temos que notar que ele retornará uma lista de classes, diferente do método nativo element.className, que retorna apenas a primeira classe das classes anexadas. Como geralmente o elemento possui mais de uma classe, recomendamos que você não use esse método nativo, mas o element.classlist ou o método descrito acima.
A primeira variante retornará uma lista de classes como uma matriz, a segunda como uma string - nomes de classes separados por espaços:
Outro aviso importante é que tanto os métodos quanto o método jQuery
retorne apenas a lista de classes do primeiro elemento capturado pelo objeto jQuery se usarmos um seletor mais comum que aponte muitos outros elementos. Nesse caso, temos que marcar o elemento, queremos obter as classes dele, usando algum índice, por exemplo
Depende também do que você precisa fazer com essas classes. Se você quiser apenas verificar uma classe na lista de classes do elemento com esse ID, use o método "hasClass":
como mencionado nos comentários acima. Mas se você precisar ter todas as classes como seletor, use este código:
O resultado será:
e você pode criar dinamicamente uma regra específica de reescrita css, por exemplo.
Saudações
fonte
Isso também funciona.
fonte
Melhor maneira de obter o nome da classe em javascript ou jquery
attr()
A função attribute é usada para obter e definir o atributo.fonte
use assim: -
se você usou essa classe mais de uma vez, use cada operador
fonte