web-dev-qa-db-fra.com

Comment obtenir les balises de classe de l'élément html

J'utilise une configuration de modernisation personnalisée qui a sélectionné les fonctionnalités que j'utilise dans ma page (et uniquement ces fonctionnalités). 

Donc, j'aimerais simplement saisir le className du <html> de la page afin de pouvoir vérifier combien de classes préfixées no- sont présentes (peut-être en vérifiant classlist.match(/no-/g).length) et déterminer si mon javascript doit simplement être abandonné. 

Ce n'est pas clair si je devrais utiliser

document.getElementsByTagName('html').className

ou 

$('html').attr('class')

ou 

document.documentElement.className
12
Steven Lu

Je vais aller pour:

document.documentElement.className;

Parce que n'implique aucune fonction, ni une couche supplémentaire comme jquery Idéalement, celui-ci est le plus propre et le plus rapide.

27
ZER0

vous pouvez utiliser la méthode jQuery hasClass `:

Déterminez si l'un des éléments correspondants est affecté à la classe donnée.

if ( $('html').hasClass('no-something')) {
  // do something here
}
4
undefined

Si vous utilisez JS simple, l'équivalent serait:

document.getElementsByTagName('html')[0].className
2
Martin

Si vous utilisez jquery dans votre projet, pourquoi ne pas utiliser celui-ci:

var classList = $("html").attr('class').split(/\s+/);
var prefix = 'no-';

$.each( classList, function(index, item){
  if (item.substring(0, 2) === prefix) {
    //do something
  }
});

?

1
Besnik