Supprimer tous target=“_blank” à partir de liens
Je suis déconner avec jQuery et a couru dans un problème je n'arrive pas à résoudre. Je sais que c'est possible avec jQuery, mais ne peut pas trouver un bon exemple pour travailler. J'ai une page avec un couple des liens réguliers avec l'attribut/valeur target="_blank"
ajouté.
Quelle est la meilleure approche avec jQuery/JavaScript pour supprimer la valeur de chaque lien sur la page?
OriginalL'auteur Dustin | 2012-04-11
Vous devez vous connecter pour publier un commentaire.
Cela devrait le faire avec jQuery...
Avec un navigateur moderne...
Avec une ancienne version de navigateur comme précédente S...
Pourquoi s'embêter avec le
.slice()
? Depuis que vous utilisez.forEach()
, il suffit de définir le contexte de cette méthode.[].forEach.call(document.querySelectorAll(...
Je n'avais pas considéré comme tel, mais il est en effet un meilleur moyen pour y parvenir. Merci pour votre commentaire, j'ai mis à jour ma réponse.
Pas un grand fan de faire les choses dans les expressions de comparaison, c'est plus clair pour moi et probablement d'autres à utiliser 2 caractères supplémentaires et à écrire :
if (links[i].target == '_blank') links[i].removeAttribute('target');
ou tout simplement à ", peu importe:links[i].target = '';
Je suis d'accord il peut être un peu difficile à suivre, au premier abord. Je pensais que le
removeAttribute()
serait plus propre que le paramètretarget
à une chaîne vide, je sais que c'est vide, même si l'attribut est absent, mais je ne savais pas si il fallait retirer l'attribut si je vide lorsqu'il en existait déjà, non pas que cela importe, le résultat est le même. Le définir indépendamment serait de remplacertarget
attributs qui n'ont pas été_blank
.OriginalL'auteur alex