Modifier la cible du lien attribut si son attribut href contient certaines phrase
Je suis en train de vérifier tous les points de contrôle' des balises à l'aide .each()
et set home Url cible pour _self
et d'autres non-home Url cible pour _blank
.
Jusqu'à présent, j'ai obtenu ceci:
$('a').each(function() {
var homeURL = 'google.ca';
if ( $(this+'[href*='+homeURL+']')) {
$(this).attr('target','_self');
}else{
$(this).attr('target','_blank');
}
});
C'est aussi sur jsBin ici.
Pour une raison quelconque, la non-maison des Url ensemble de target="_self"
. Quelqu'un peut-il expliquer pourquoi?
Vous pouvez poster en html?
OriginalL'auteur FoxKllD | 2012-02-27
Vous devez vous connecter pour publier un commentaire.
Essayez plutôt ceci:
()
retournetrue
si l'élément sélectionné correspond au sélecteur de la fonction etfalse
si elle ne le fait pas. Donc, si le courant du lienhref
attribut contientgoogle.ca
, il va changer sontarget
attribut_self
. Sinon, c'vais le mettre à_blank
.Et, en fait, pour plus d'efficacité, vous devez cache
$(this)
:Pas de problème. C'est l'idée avec le site! J'aime être ici pour aider mes collègues programmeurs. 🙂 Je tiens à souligner que, si ma réponse vous a aidé dans la résolution de votre problème, qu'il est de bonne pratique pour la marquer comme acceptée pour les futurs visiteurs.
J'ai essayé de le marquer à chaque minute et à la cinquième j'ai pu enfin la marque de votre réponse! LoL, je pense que mon problème était que je ne savais pas le problème.
Pourquoi vous avez utilisé $?
Tout ce que nous faisons est de stocker des
$(this)
dans la variable dont le nom est$this
. Ce qui n'est de nous permettre d'utiliser$(this)
juste une fois. Puisque c'est un cher sélecteur (c'est assez lent, et va sensiblement réduire la vitesse si utilisé trop), il est préférable de les utiliser aussi peu que possible.OriginalL'auteur Purag
Très belle, élégante solution.
OriginalL'auteur charlietfl
Vous pouvez également réaliser cette avec:
OriginalL'auteur fkoessler