Comment puis-je obtenir sélecteur d'objet jQuery
$("*").click(function(){
$(this); //how can I get selector from $(this) ?
});
Est-il un moyen facile de obtenir sélecteur de $(this)
? Il y a un moyen de sélectionner un élément par son sélecteur, mais ce sujet d'obtenir la sélection de l'élément?
- Juste curieux de savoir pourquoi ce serait utile? Ce que vous êtes en train de dire (sémantiquement) est pour chaque élément référencé par $(this)... l'élément lui-même est $(this) ainsi que le sélecteur n'est pas nécessaire. Vous avez de l'objet...
- vous vous rendez compte que le clic avec des éléments imbriqués sera de retour plus d'un? div dans un corps, etc. ou suis-je trop fatigué à ce point?
- Il serait utile si vous pouviez décrire le "but final" de ce que vous essayez d'accomplir. Vous pourriez obtenir la meilleure aide de cette façon.
- Un élément peut être sélectionné dans une myriade de façons différentes. Aussi, sélecteur !== chemin d'accès. Qu'attendez-vous pour faire de cette information?
- Je suis d'accord avec deceze sur le sélecteur !== chemin d'accès. Vous pourriez avoir une balise UL avec trois LI balises imbriquées à l'intérieur. Ils ont tous le même chemin.
- Downvoted parce que je ne suis pas sûr de ce que vous demandez. Vous voulez être en mesure de consulter l'objet jQuery emballage
this
pour l'information qu'il est venu à propos, par un sélecteur de"*"
. En fait, l'objet jQuery construit par emballagethis
est différente de celle de ce qui a été construit en sélectionnant"*"
. - Dans mon cas, j'ai de résultat du processus de $(":focus"). Je ne suis pas sûr qu'il s'agisse de l'élément a de la classe ou id ou toute autre identification
- Cela peut être utile si vous avez déjà trouvé un élément JQuery, et sont à l'aide d'un plugin/module/sous-programme, qui nécessite un sélecteur de travail (éventuellement hors de votre contrôle).
Vous devez vous connecter pour publier un commentaire.
Ok, donc dans un commentaire ci-dessus la question asker
Fidilip
dit que ce qu'il/elle est vraiment après c'est pour obtenir le chemin d'accès à l'élément courant.Voici un script qui va "monter" le DOM ancêtre de l'arbre, et ensuite construire assez précis sélecteur y compris toute
id
ouclass
attributs de l'élément cliqué.Voir ce que ça fonctionne sur jsFiddle: http://jsfiddle.net/Jkj2n/209/
Par exemple, si vous cliquez sur le 2ème de la liste imbriquée élément de la liste dans le code HTML ci-dessous, vous obtenez le résultat suivant:
HTML>BODY>UL>LI>UL>LI#sub2.subitem.otherclass
join(" > ");
, obtenez-moi l'immédiat, les enfants et donc un plus strict chemin d'accès.::WARNING::
.sélecteur a été obsolète depuis la version 1.7, retiré que de 1,9
L'objet jQuery possède un sélecteur de propriété que j'ai vu en fouillant dans son code hier. Ne sais pas si c'est défini dans les docs sont de façon fiable, il est (pour vérification). Mais ça fonctionne!
Modifier: Si vous deviez trouver le sélecteur à l'intérieur de l'événement, l'information devrait idéalement faire partie de l'événement lui-même et non pas l'élément, parce qu'un élément peut avoir plusieurs cliquez sur événements affectés par les différents sélecteurs. Une solution serait d'utiliser un wrapper autour de
bind()
,click()
etc. pour ajouter des événements au lieu de les ajouter directement.Le sélecteur est passé comme une propriété de l'objet nommé
selector
. L'accès commeevent.data.selector
.Nous allons essayer sur certains de balisage (http://jsfiddle.net/DFh7z/):
Avertissement: Rappelez-vous que, tout comme avec
live()
événements, le sélecteur de propriété peut être invalide si DOM traversée de méthodes sont utilisées.Le code ci-dessous ne fonctionnera PAS, que
live
s'appuie sur le sélecteur de la propriétéqui dans ce cas est
a.parent()
- une défaillance de sélecteur.Notre
addEvent
méthode d'incendie, mais vous aussi, vous allez voir le mauvais sélecteur de -a.parent()
.No Such jQuery Method Exists
En collaboration avec @drzaus nous sommes arrivés à la suite de plugin jQuery.
jQuery.getSelector
Minifiés Javascript
D'utilisation et de Pièges
Violon w/QUnit tests
http://jsfiddle.net/CALY5/5/
$.map
* en option séparateur (besoins de bande bizarre vide les noms d'étiquette) * n'avez-vous pas besoin de vérifierhasOwnProperty
dans unforeach
boucle pour être sûr?' > '
serait la cause de non retour de l'élément sélecteur.Avez-vous essayé ?
*
sélecteur, il est très lent!J'ai publié un plugin jQuery: jQuery Selectorator, vous pouvez obtenir sélecteur de ce genre.
Essayez ceci:
Il suffit d'ajouter une couche de plus de $ fonction de cette manière:
JS:
Maintenant, vous pouvez faire des choses comme
et sera de retour "a", même sur les nouvelles versions de jQuery.
http://www.selectorgadget.com/ est un bookmarklet conçu explicitement pour ce cas d'utilisation.
Cela dit, je suis d'accord avec la plupart des autres personnes à qui vous devez simplement apprendre les sélecteurs CSS, vous-même, en essayant de les générer avec le code n'est pas durable. 🙂
J'ai ajouté quelques corrections pour @jessegavin fixer.
Ce sera de retour tout de suite si il y a un ID sur l'élément. J'ai également ajouté un attribut de nom de vérifier et d'un nième sélecteur d'enfant dans le cas d'un élément n'a pas d'id, classe, ou d'un nom.
Le nom pourrait avoir besoin de la portée dans le cas où il y a plusieurs formulaires sur la page et similaires entrées, mais je ne gère pas encore.
Je recevais plusieurs éléments, même après des solutions ci-dessus, j'ai donc étendu dds1024 travail, pour encore plus de pin pointant vers l'élément du dom.
ex DIV:nth-child(1) DIV:nth-child(3) DIV:nth-child(1) de l'ARTICLE:nth-child(1) DIV:nth-child(1) DIV:nth-child(8) DIV:nth-child(2) DIV:nth-child(1) DIV:nth-child(2) DIV:nth-child(1) H4:nth-child(2)
Code:
Cela peut vous sélecteur de chemin de cliqué sur l'élément HTML-
Bien, j'ai écrit cette simple plugin jQuery.
Ce checkes id ou le nom de la classe, et d'essayer de donner autant d'exact sélecteur possible.
Vous essayer d'obtenir le nom de la balise courante qui a été cliqué?
Si oui, le faire..
Vous ne pouvez pas vraiment obtenir le "sélecteur", le "sélecteur" dans votre cas est
*
.Code Javascript pour le même, en cas de besoins, comme j'ai besoin. - Ce juste la traduction que de la au-dessus de réponse sélectionnée.
La prise en compte des réponses de lire ici, je voudrais vous proposer ceci:
Peut-être utile de créer un plugin jQuery?
Merci p1nox!
Mon problème était de mettre le focus sur un appel ajax qui est en train de modifier une partie de la forme.
J'ai juste besoin d'encapsuler votre fonction dans un plugin jQuery:
Ce n'entrerai pas dans le DOM chemin, mais il va générer une représentation de chaîne de ce que vous voyez, par exemple dans chrome débogueur, lors de la visualisation d'un objet.
https://developer.chrome.com/devtools/docs/console-api#consolelogobject-object
Comment sur:
Je ne crois pas que jQuery store le sélecteur de texte qui a été utilisé. Après tout, comment cela fonctionnerait si vous avez fait quelque chose comme ceci:
$('div').find('a').selector
estdiv a
. Si les événements ne sont pas créés par les fonctions jQuery, mais un wrapper au lieu de cela, je crois que le sélecteur pourraient être transmis en tant que données d'arguments pour le gestionnaire d'événement.La meilleure réponse serait