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

jQuery est jusqu'à la version 1.4! En plus de plusieurs nouvelles fonctionnalités et les «habituels» réécriture du code, tous les documents ont été révisés dans un très 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 possession de l'attribut target mis à _blank !
C'est ce que nous avons déjà vu dans le très court extrait: jQuery lien cible automatique vierge . Le problème est que les images ont souvent un lien dans une nouvelle fenêtre et ajouter une autre image sur le forum n'est pas très agréable. Pour vous assurer que ce lien particulier de la classe n'est pas appliquée, il ya deux façons:

Ajouter une classe

, non vogliamo mostrino l'immagine. La première méthode, qui s'applique à tous les liens, est d'ajouter une classe, par exemple noexternal , tous ces liens que, malgré contenant l'attribut target="_blank" , ne veut pas montrer l'image. En pratique, nous voulons faire en sorte que jQuery ne les prend pas en compte.

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

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

1
2
3
"blank" href = "http://www.undolog.com" > Link esterno con immagine < / a > < une target = "blank" href = "http://www.undolog.com"> Lien de l'image externe </ une >

"blank" class = "noexternal" href = "http://www.appleside.it" > Link esterno senza immagine < / a > < une target = "blank" class = "noexternal" href = "http://www.appleside.it"> lien externe, sans une image </ une >

Utilisez un cycle each ()

Sinon, pour désactiver l'utilisation de la classe de tous ces liens externes qui contiennent une image, on peut utiliser:

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

Ceci exécute la même fonction que l'ancien avec l'ajout du test si l'image d'enfants "première". . Si oui, la classe external à la balise n'est pas ajouté a .
Il serait intéressant de voir si il ya une manière de faire la même chose sans l'aide d'un "cycle" each() !

Il n'y a aucun commentaire pour cet article

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <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