web-dev-qa-db-fra.com

jQuery vérifie si attr = valeur

Je semble avoir des problèmes avec mon code. J'ai besoin de dire:

if ( $('html').attr('lang').val() == 'fr-FR' ) {
    // do this
} else {
    // do that
}

Lorsque je vérifie la console, j'obtiens une erreur en me disant que ce n'est pas une fonction. L'aide serait appréciée.

Merci,

35
beefchimi

Retirez juste le .val (). Comme:

if ( $('html').attr('lang') == 'fr-FR' ) {
    // do this
} else {
    // do that
}
78
Miguel Ribeiro

la méthode attr de jQuery renvoie la valeur de l'attribut:

La méthode .attr() obtient la valeur d'attribut uniquement pour le premier élément de l'ensemble mis en correspondance. Pour obtenir la valeur de chaque élément individuellement, utilisez une construction en boucle telle que la méthode .each() ou .map() de jQuery.

Tout ce dont tu as besoin c'est:

$('html').attr('lang') == 'fr-FR'

Cependant, vous pourriez vouloir faire une correspondance insensible à la casse:

$('html').attr('lang').toLowerCase() === 'fr-fr'

la méthode val de jQuery renvoie la valeur d'un élément de formulaire.

La méthode .val() est principalement utilisée pour obtenir les valeurs d'éléments de formulaire tels que input, select et textarea. Dans le cas d'éléments <select multiple="multiple">, La méthode .val() renvoie un tableau contenant chaque option sélectionnée. si aucune option n'est sélectionnée, il retourne null.

8
zzzzBov