J'ai une fonction qui vérifie si une balise IMG est à l'intérieur d'un élément de figure avec une classe de "colorebox", et s'il est, d'ajouter un style supplémentaire à certains éléments. Cependant, la fonction fonctionne toujours même s'il n'y a pas d'images dans la figure Colorbox et je ne sais pas pourquoi.
Ma jQuery ressemble à ceci p> et voici La figure Colorbox, clairement sans élément img ... p> Alors pourquoi JQuery prendrait un élément qui n'existe pas? P> P>
3 Réponses :
a renvoyé un nouveau sous-ensemble JQuery. Vous voudrez si ($ (". Colorbox"). A ("img"). Longueur) code> Pour vérifier s'il y a des étiquettes IMG là-bas P>
DOCS pour le soutenir: "Compte tenu d'un objet JQuery qui représente un ensemble d'éléments DOM , la méthode .has () construit un nouvel objet JQuery à partir d'un sous-ensemble des éléments correspondants. Le sélecteur fourni est testé contre les descendants des éléments correspondants; l'élément sera inclus dans le résultat si l'un de ses éléments de descendance correspond au sélecteur . "
Il semble que l'utilisation de la méthode de la longueur de la longueur empêche la fonction de fonctionner en toutes circonstances, la fonction ne se déclenche pas même s'il y a une étiquette IMG.
Voici un exemple JSFIDDLE pour montrer comment la longueur fonctionne et ce que $ (". Colorbox"). a ("img"). Des sorties de longueur et ce que $ (". Colorbox"). A des sorties ("img"). J'espère que cela aide à montrer la différence.
Je préférerais trouver code> fonction
Je le ferais de cette façon: et maintenant à votre problème: p> alors vous demandez si la liste $ (". Colorbox ") code> renvoie une liste .has (" img ") code>? Cela signifie que si un élément de la liste a un élément
Merci pour la réponse, mais ironiquement, je veux appliquer jQuery à d'autres éléments i> s'il y a une étiquette IMG, non à l'img lui-même.
à d'autres éléments? quels éléments? À l'intérieur de chaque boucle, vous pouvez appliquer JQuery à tout autre élément que vous souhaitez, non seulement à cette image.
Ah, tu as raison. J'ai réussi à le comprendre, merci beaucoup pour l'aide.