Comment sélectionner un groupe de balises qui n'ont pas d'enfants d'un certain type

jQuery est maintenant à la version 1.4! En plus de plusieurs nouvelles fonctionnalités et la réécriture «habituel» du code, toute la documentation a été révisée dans un cadre vraiment plus lisible qu'avant. impostato a _blank ! Mais nous voyons la question de ce post, problème: ajouter, en utilisant jQuery, une classe de toutes les balises a qui ont l'attribut target fixé à _blank !
Ce que nous avions déjà vu dans Très court extrait: auto jQuery cible lien blanc . Le problème est que, souvent, les images ont un lien dans une nouvelle fenêtre et ajouter une autre image à la carte n'est pas très agréable. Pour ce faire sur ce lien particulier n'est pas appliqué à la classe il ya deux façons:

Ajouter une classe

, non vogliamo mostrino l'immagine. La première méthode, qui est vrai avec n'importe quel lien, est d'ajouter une classe, par exemple noexternal , à tous ces liens qui, en dépit contenant l'attribut target="_blank" , nous ne montrons pas l'image. En pratique, nous voulons faire en sorte que jQuery pas les prendre en considération.

1
) . not ( '.noexternal' ) . addClass ( 'external' ) ; $ ('A [target = _blank].) Non (' Noexternal. ') AddClass («externe»).;

Cette meotdo, quoique efficace, forces, cependant, de faire en un lien que nous voulons exclure la classe noexternal :

1
2
3
"blank" href = "http://www.undolog.com" > Link esterno con immagine < / a > < a target = "blank" href = "http://www.undolog.com"> lien externe avec photo </ a >

"blank" class = "noexternal" href = "http://www.appleside.it" > Link esterno senza immagine < / a > < un lien target = classe "blanc" = "noexternal" href = "http://www.appleside.it"> Externe sans image </ a >

Utilisez une boucle each ()

Sinon, pour désactiver l'utilisation de la classe de tous les liens externes qui contiennent une image, nous pouvons utiliser:

1
2
3
4
5
6
7
) . each ( $ ('A [target = _blank]: non (Noexternal).') Unité (.
function () {
this ; var me = this;
! ( $ ( me ) . children ( 'img' ) . length > 0 ) ) if (($ (moi). enfants ('img'). longueur> 0))
. addClass ( 'external' ) ; . $ (Me) AddClass («externe»);
}
);

Cela remplit la même fonction que le précédent avec l'ajout de contrôles pour voir si la «première» fils est une image. . Si c'est le cas, la classe external n'est pas ajouté à la balise a .
Il serait intéressant de voir si il ya une méthode pour faire la même chose sans l'aide d'un "cycle" each() !

Il n'y a aucun commentaire pour cet article

Laisser un commentaire

TAG XHTML PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> entrée du code:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL