web-dev-qa-db-fra.com

Comment obtenir un élément par nom de classe

Je veux savoir s'il existe un moyen de getElementByClassName("classname").innerHTML fonction ou quelque chose à l'équivalent de getElementById("ClassName").innerHTML.

12
foshoeiyyy

Il manque un s dans le nom de votre fonction. getElementsByTagName renvoie une collection d'éléments, d'éléments, sur lesquels vous devez répéter:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = 'foo';
}

IE8 et les versions antérieures ne prennent pas en charge getElementsByClassName, vous devrez donc trouver un polyfill ou utiliser querySelectorAll (IE8).

26
Blender

Je vous suggère d'utiliser JQuery, où vous pouvez utiliser directement des sélecteurs CSS (comme .yourclass) pour trouver tous les éléments d'une classe donnée:

$('.yourclass').doWhatYouWant();

Si vous préférez ne pas utiliser JQuery, vous pouvez utiliser du Javascript simple:

document.getElementsByClassName('my-fancy-class')

Mais soyez prudent avec le problème d'incompatibilité IE8. Comme alternative (plus lent mais vous pouvez créer des sélecteurs CSS plus complexes), vous pouvez utiliser:

document.querySelector('.cssSelector')

Qui retournera n élément répondant à votre sélecteur CSS, ou

document.querySelectorAll('.cssSelector')

Qui renverra plusieurs éléments à la place.

1
Fire-Dragon-DoL

Vous pouvez le faire en utilisant jquery

$('.className').html();

http://api.jquery.com/html/

0
Robert