Comment faire un raccourci si-alors en jQuery? Ces chainable?
En fait deux questions:
J'aime l'abréviation if-ELSE dans jQuery comme suit:
var some == true ? "it's true" : "it's false";
Est-il un correspondant SI-ALORS, parce que c':
var some == true ? "it's true"
ne semble pas fonctionner.
Aussi, serait quelque chose comme cela sera chainable régulièrement en jQuery? Comme:
some.addClass("hello")
.find(".other").css("width","100px").end()
//chained if
.hasClass("one") ? some.css("border","1px solid red")
.removeClass("hello")
Maintenant ce qui serait bien, n'est-ce pas? Est-ce possible?
var some == true ? "it's true" : "it's false";
est javascript jqueryPourquoi voudriez-vous de la chaîne d'elle? Juste envelopper les dernières lignes dans un if.
correct. J'ai marqué difficile
n'est-ce pas le chaînage censé être mieux que de faire beaucoup de si-elses?
le chaînage n'a rien à voir avec
if-else
OriginalL'auteur frequent | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
Il ya un couple de plugins qui vous permettent de chaîne
if
logique dans jQuery -http://outwestmedia.com/jquery-plugins/conditional/
http://benalman.com/projects/jquery-iff-plugin/
OriginalL'auteur ipr101
L'abréviation SI/d'AUTRE, vous êtes relatives à l'appelle un opérateur ternaire, et il n'est pas chainable de la même manière qu'un IF/ELSE, ni est-il chainable comme une méthode jQuery, et il y a certaines limites à son utilisation, vous pouvez cependant placer l'un dans l'autre, comme suit:
Vous pouvez également le faire:
Cela renvoie à quelque chose, donc, habituellement, il est utilisé comme suit:
En d'autres termes, vous pouvez faire:
Vous pouvez aussi faire quelque chose de semblable à cela, et il ya beaucoup de façons différentes d'utiliser un ternaire:
Autres que que, lorsque le fait d'avoir beaucoup de choses à effectuer un if/else est généralement plus le cas, et si beaucoup de if/else/elseif vérification, un switch/case est probablement mieux.
var
sont des déclarations, mais pas d'expressions, de sorte qu'ils ne peuvent pas être à l'intérieur d'un opérateur ternaire.Votre droite, un peu trop de copier/coller. Il fixe!
OriginalL'auteur adeneo
Qui va le faire (affectation utilise un seul =, deux, c'est pour les conditions), mais si le premier est vrai, comme vous l'avez posté, certains seront TOUJOURS vrai.
Et non, votre exemple ne serait pas chainable, mais vous pouvez remplacer votre hasClass par
filter('.one')
qui permettra de poursuivre la chaîne si il y a des éléments contenant de la classe:true
sisome == true
, et"it's true"
autrement.que n'a même pas de travail à tous (égal double? sérieusement?)
N'a pas de sens; vous êtes toujours à l'attribution
some
àtrue
.Ce n'est pas le code.
J'ai édité le post, je copie collé à l'origine de l'affiche de code qui est faux car il a été l'utilisation de == au lieu de = faire son travail -> jsfiddle.net/NjcRt/1
OriginalL'auteur GillesC