JS- ajouter un attribut sur balise dn span

Résolu
canarder Messages postés 1714 Date d'inscription   Statut Membre Dernière intervention   -  
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, puisque c'est plus facile d'expliquer avec du code, je vais vous expliquer avec :

<span id="empr"><a href="http://www.site.com/"><img src="http://www.site.com/ban.png"></a></span>


J'aimerais ajouter au lien http://www.site.com/ l'attribut target="_blank" en javascript et uniquement pour ce lien qui est présent dans le span avec l'attribut id="empr", c'est pour utiliser cette technique pour les liens vérifiés par des robots dont il manque target="_blank" dans leur lien.

J'ai trouvé ce code mais fonctionne pour toute la page :
document.getElementsByTagName('a')[0].target="_blank";

Alors, j'ai pensé à ce code :
document.getElementById("empr" ).getElementsByTagName('a')[0].target="_blank";


Et ça n'a pas marché.

Après j'ai essayer :

var idempr = document.getElementById("empr" );
idempr.getElementsByTagName('a')[0].target="_blank";


Puis :

document.getElementById('empr').a.target = '_blank';


Quelqu'un peut m'éclairer ? Je continue à cherche évidemment, et je vais me mettre sérieusement à apprendre le javascript que je dit longtemps maîtriser :\ (je le comprend un peu) ...


A voir également:

2 réponses

Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,

je pense que la méthode d'acces est la bonne :
document.getElementById("empr" ).getElementsByTagName('a')[0] ;


mais c'est la méthode de modification de l'attribut qui doit faire une erreur.
Essaye avec :
document.getElementById("empr" ).getElementsByTagName('a')[0].setAttribute('target', '_blank');

Il y a seulement 10 types de personnes, ceux qui comprennent le binaire, et les autres...
0
canarder Messages postés 1714 Date d'inscription   Statut Membre Dernière intervention   355
 
ton code ne marche pas
0
SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   47
 
Si setAttribute fonctionne avec IE, mais les noms des attributs ne sont pas les mêmes pour lui. Par exemple pour sélectionner l'attribut class, tu mettras setAttribute('className') sous IE, et setAttribute('class') sous firefox. Mais il fonctionne bien sur les deux navigateurs.

Simplement tu développes pas pareil pour les deux, donc il faut gèrer la compatibilité du navigateur, avec des script du genre:

if (navigator.appName.indexOf("Microsoft") == 0){
			//on est sur IE
		var monAttributClass = 'className';
		} else {
			//on est pas sur IE
		var monAttributClass = 'class';
		}
0
canarder Messages postés 1714 Date d'inscription   Statut Membre Dernière intervention   355
 
je cherche juste un code précis, tu veux dire setAttribute('classempr') pour class empr ou setAttribute('className','empr') ?
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
c'est
setAttribute('className', 'maClasse') // pour FF
setAttribute('class', 'maClasse') // pour IE


mais pour l'attribut target, je pense que cela marche dans les 2 cas
0
canarder Messages postés 1714 Date d'inscription   Statut Membre Dernière intervention   355
 
et comment on le met ? je veux un code complet car des bouts de code ... dans les tutos ils parlent sois de document.getElementById sois de document.getElementsByTagName mais jamais les deux en même temps
0
canarder Messages postés 1714 Date d'inscription   Statut Membre Dernière intervention   355
 
up
0