71 votes

Récupérer les données booléennes de l'attribut de données dans jquery

J'essaie de récupérer un attribut de données de type Boolean à partir d'un élément html DIV , mais il renvoie toujours false lorsque la chaîne est convertie en booléen .

HTML

 <div id='test' data-return="true"></div>

JS

 isreturn_str = $('#test').data('return');
isreturn = (isreturn_str === 'true');
if (isreturn) {
    document.write("It is true");
} else {
    document.write("It is false");
}

sortir

C'est faux

http://jsfiddle.net/neilghosh/494wC/

6voto

Yoshi Points 25790

jQuery reconnaît la chaîne "true" comme sa contrepartie booléenne (dans le contexte des attributs de données) et donc :

 typeof isreturn_str; // boolean

mais vous comparez strictement à la chaîne 'true' qui donne false car une chaîne n'est pas un booléen.

2voto

SiGanteng Points 23915

"true" est transtypé en interne en booléen (essayez alert (typeof(isreturn_str)) ), donc votre === échoue lors de la vérification du type.

Vous pouvez appeler .toString()

 isreturn_str = $('#test').data('return').toString();

http://jsfiddle.net/494wC/8/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X