2010-08-15 11 views
2

est-il un moyen d'ajouter des attributs à un élément DOM avec la valeur booléenne comme ceci:En utilisant des attributs personnalisés dans des éléments DOM, avec une valeur booléenne

<body test='false'></body> 

Je dois mettre cela sans l'aide javascript.

Merci

+0

Que voulez-vous dire? C'est une valeur booléenne. Voulez-vous dire 1 ou 0? Ensuite, vous devrez changer la façon dont vous l'écrivez. Comment ça s'ecrit? –

+0

Non, il n'y en a pas. Les attributs sont toujours des chaînes en HTML. En fonction de ce que vous allez faire avec cet attribut, vous devrez peut-être l'analyser. Notez également que selon la spécification w3c, aucun attribut 'test' n'est défini sur la balise' body', ce qui signifie que votre HTML n'est pas valide. –

+2

Le fait que quelque chose soit un booléen valide n'est pertinent que dans le contexte d'un langage de programmation. Si vous n'utilisez pas javascript ... où devez-vous récupérer la valeur en tant que booléen? (et pourquoi avez-vous tagué cette question avec 'javascript' en premier lieu) –

Répondre

3

HTML5 a quelque chose appelé data-attributes qui pourrait répondre à vos besoins. Vous pouvez faire quelque chose comme ceci:

<body data-test="true"></body> 

Et puis vérifiez la valeur booléenne de l'attribut comme celui-ci (en utilisant jQuery):

!!$('body').attr('data-test') 

Explication de l'opérateur "double bang":

Vous pouvez obtenir la valeur booléenne de n'importe quel objet javascript comme ceci:

!!0 //false 

!!1 //true 

!!undefined //false 

!!true //true 

Modifier

Comme l'a souligné David, une chaîne non vide (comme par exemple "faux") donnerait vrai.

Vous avez 2 options:

  • Do not définir l'attribut, qui sera définie et donc false

  • comparer à la chaîne "true" au lieu d'utiliser !! opérateur

Hope that helps!

+2

... mais la chaîne '" false "' est 'true' – Quentin

+0

C'est vraiment un gros edit ... qui ne résout pas le problème' !! "false" // true' – Quentin

+0

@David maintenant –