2017-09-27 6 views
0

Je le Javascript suivant condition logique en utilisant l'opérateur ternaire:Javascript opérateur tenary

var columnheader = (elem.getText ==="ID") ? (Page.TableColumn(elem.getText())) : (Page.TableColumn(toTitleCase(elem.getText()))); 

Pour une raison quelconque lorsque la valeur est elem.getText « ID » sans espace n'evalute pas la première expression seulement la seconde, y a-t-il quelque chose qui ne va pas dans ma syntaxe? J'ai vérifié et doule vérifié!

+0

Vous n'avez pas besoin de la parenthèse. Mais votre syntaxe est correcte. –

+2

Cela ne devrait-il pas être 'elem.getText() ===" ID "'? autrement, ne peut rien trouver de mal avec cela. – Lixus

Répondre

1

getText est une fonction. Dans votre code, vous comparez la fonction avec "ID", pas le résultat de l'appel de la fonction (getText()).

devrait être:

var columnheader = (elem.getText() ==="ID") ? (Page.TableColumn(elem.getText())) : (Page.TableColumn(toTitleCase(elem.getText()))); 
+0

Merci, il a échoué à l'exécution, je pensais que le compilateur aurait montré ce type d'erreur que getText n'est pas une chaîne. – van