2011-01-30 3 views
0

J'essaie de définir une variable en Javascript. Je veux que la variable utilise l'un des éléments suivants.Une manière plus efficace de définir une variable à partir de plusieurs sources?

1er choix si existe

$(this).attr("data-name"); 

2ème choix si ci-dessus ne marche pas exister

$(this).attr("name"); 

3e choix si aucun Do not ci-dessus existent

$(this).attr("id"); 

Et quand je dis ne marche existe que je veux dire non nul, non indéfini et non vide.

Je ne suis pas sûr qu'un moyen efficace de le faire en javascript pourrait utiliser un peu d'aide à ce sujet.

Répondre

7

Vous pouvez utiliser l'opérateur ||:

var name = $(this).data('name') || this.name || this.id; 

Cela dit « utiliser l'attribut data-name, si elle est falsy, utilisez la propriété name, si elle est falsy, utilisez la propriété id. »

valeurs Falsy sont:

  • faux
  • null
  • non définie
  • une chaîne vide
  • le nombre 0
  • NaN
+0

Est-ce th est également confirmer ceux qui ne renvoient pas null ou indéfini? – jhanifen

+0

@jhanifen Oui: voir modifier. – lonesomeday

+0

Merci pour l'aide lonesomeday, cela fonctionne très bien et je vais trouver cela très utile à l'avenir. – jhanifen

Questions connexes