9
votes

Stocker $ (ceci) dans une variable

Si je veux enregistrer ceci code> en tant qu'objet JQuer DOM, puis sélectionnez-le, quelle méthode ci-dessous dois-je utiliser?

$(element + " .class")


0 commentaires

5 Réponses :


11
votes

$ ceci = $ (this) est généralement ce que font les gens. Le signe du dollar est un caractère valide pour un nom de variable. Il sert donc de bon rappel que la variable est un objet JQuery.

Vous pouvez ensuite utiliser $ CU comme vous le feriez n'importe quel élément de jQuery. Par exemple, $ ceci.css ('Border', 'Aucun')


5 commentaires

Devrait être prudent avec cela, en particulier si la raison de la stocker dans une variable est de le faire référence dans un contexte différent (événement de clic secondaire, ajax résultat) où $ (this) fait référence à quelque chose de différent.


@jim, vrai. Cela peut être déroutant lorsque vous souhaitez faire référence à $ Ceci à l'intérieur d'une fonction de réussite Ajax ou d'une autre.


+1, bien que je préfère utiliser $ que comme lorsque j'utilise cela, j'en ai généralement besoin dans une autre portée qui utilise déjà un autre ce - essentiellement moins déroutant.


C'est intelligent @louis, je pourrais commencer à faire ça


À peu près sûr que je l'ai ramassé de JS les bonnes parties, ne me donnerais pas trop de louange dessus: p



17
votes
var element = $(this)
Then you can use element instead of $(this). You don't have to insert element into $() anymore.For example : element.remove() instead of $(this).remove()

2 commentaires

Pour atteindre l'édition $ (élément + ".class") avec la réponse ci-dessus utilise élément.hasclass ("Classe")


Une bonne pratique consiste à nommer vos variables avec un $ alors vous savez immédiatement que c'est un objet JQuery.



2
votes

var element = $ (this) pour stocker

Alors élément pour sélectionner


0 commentaires

2
votes

Si vous souhaitez sélectionner tous les éléments avec la classe MyClass, vous devez faire:

var $this = $(this);
var myClassElements = $(".myClass", $this);


4 commentaires

C'est exactement ce que je fais et franchement supérieur (et correct) par rapport aux autres réponses.


@Ollim ne myClasselements SELECT CETTE INTÉRIEUR MYCLASS ?


Devrait faire attention à cela, en particulier si la raison de la stocker dans une variable est de le faire référence dans un contexte différent (événement de clic secondaire, ajax résultat) où $ (ceci) fait référence à quelque chose de différent.


@Ilyad Ceci est donné comme contexte pour le sélecteur, alors JQuery ne trouvera que des éléments à l'intérieur. Voir: API.JQUERY.com/JQUERY



1
votes

La bonne voie est la suivante:

var element= this.html();
$(element).find(div) /* from modefy div you can change it with any other selector */
$(element).attr({"class":"myClass","other atrribut":"it's value"});


0 commentaires