J'ai besoin d'aide pour comprendre Par exemple: Je ne comprends pas pourquoi ce code: P> $ (this) code>. Est-il possible de limiter le centre de "ceci" dans les parenthèses ou "ceci" empêche-t-il l'utilisation de tout autre attributs?
$('#'+$(this).attr("id")+ " div")
5 Réponses :
Ceci code>
isn ' T a jQuery "chose", mais un Basic Javascript one . Il ne peut pas être ré-écrit comme vous avez des exemples car c'est un objet, en particulier un élément DOM ou un objet JQuery (selon le contexte que vous êtes). Donc, si vous l'avez fait:
$("[object Object] div")
+1 pour une bonne explication de la raison pour laquelle vous ne pouvez pas le faire de cette façon
Pourriez-vous élaborer pour l'astuché de la question sur ce que Ce code> est et ce qu'il fait généralement référence à la plupart des contextes par rapport à l'utilisation de JQuery (c'est-à-dire que je pense à l'intérieur des plugins, des gestionnaires d'événements, etc.)?
Bien que vous puissiez probablement le singe patch le .tostring de l'objet code> pour renvoyer le bon identifiant ...
+1 - Je cherche une réponse comme celle-ci pendant un moment maintenant! Je vois beaucoup de gens répondant aux questions en utilisant $ (ceci + 'string') code> - mais pas correct, il semble fonctionner. Une idée pourquoi?
Ceci code> n'est pas une chaîne représentant un sélecteur CSS (tel que
div code>,
#my_id code> ou
.My_class code>. ).
Lorsque vous passez Ceci code> comme argument de la fonction JQuery, il renvoie un objet JQuery basé sur l'élément actuel (ce que cela se réfère à), vous ne pouvez donc pas utiliser quelque chose comme
$ (ce sélecteur +) code>. p>
Vous pouvez regarder cela: http://api.jquerery.com/each/
Fondamentalement au fait, premier off, Ceci code> est l'élément DOM que le rappel est référencé. Vous ne pouvez pas faire
$ (ceci + "div") code> car vous ajoutez une chaîne à un élément. Vous avez d'abord besoin d'obtenir l'identifiant comme dans votre extrait de code troisième code. P>
$ (ceci) .children ("div") code> n'est pas le même que
$ ('#' + $ (this) .attr ("id") + "div") code> p>
Ce code> pourrait ne pas avoir d'identifiant , auquel cas la deuxième façon ne fonctionnera pas du tout. Et même s'il a un identifiant, ce deuxième code est actuellement
$ (this) .Find ("div") code>. Si vous voulez des enfants que vous réservez uniquement: P>
$('#'+$(this).attr("id") + " > div")
Tout d'abord, vous devez comprendre ce qui est $(this).children("div")
Compte tenu de la nature de typage de canard de cette langue, comment est-il censé savoir comment vous voulez
ce code> à utiliser? Votre exemple implique que cela devrait être une chaîne à laquelle vous pouvez ajouter des choses à apporter.
J'ai débattu d'inclure un exemple complet à l'aide d'une fonction générique, mais j'ai décidé de le garder générique dans l'espoir que quelqu'un comme Nick viendrait;)