2013-06-17 2 views
-2

En supposant que le code HTML contient la structure suivante:comment la valeur d'un attribut href peut-elle être modifiée en utilisant javascript/css?

<div> 
    <a href="http://the/link/that/needs/to/be/changed">text</a> 
</div> 

<div> 
    <div> 
     //<script> or <style> must go here 
    </div> 
</div> 

... et en supposant que la « contribution » au fichier HTML final peut être inséré uniquement à l'endroit indiqué, et en supposant que le balisage de la " un "élément ne peut être modifié de quelque façon que ce soit, est-il possible d'ajouter du javascript ou du code css qui va changer l'url que l'attribut href de l'élément" a "précédent fait référence? Si c'est le cas, comment?

+1

Voir http: //stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery – ForOhFor

+0

Si vous voulez obtenir l'élément 'a' précédent et ne pouvez pas changer le HTML, cela devrait faire : 'var elements = document.getElementsB yTagName ('a'); var last = éléments [éléments.longueur - 1]; –

Répondre

2

Vous pouvez le faire sans id:

document.querySelector("a[href^='http://the']") 

et mettre l'hélice href:

document.querySelector("a[href^='http://the']").href=whatever 

Pour une référence complète (navigateur compatibilité) de querySelector voir le MDN-Article

2

Placez un identifiant, par ex.

<a id="the_a_tag" href="...">...</a> 
    ^^^^^^^^^^^^^^ 

alors la JS est tout simplement

document.getElementById('the_a_tag').href = 'new address goes here'; 

aussi longtemps que vous mettez le javascript APRÈS le code HTML correspondant.

Et notez: CSS est pour la présentation seulement. À quelques exceptions près, il ne peut pas affecter le contenu des éléments du document, mais uniquement leur apparence (couleur/taille/position/etc ...).

+0

Je n'ai aucun contrôle sur l'identifiant de l'élément "a". –

0

Donnez le lien un identifiant <a href='...' id='linkToChange'>text</a>

Et alors l'accès dans votre script: document.getElementById('linkToChange').href='newAddress';

+0

Je n'ai aucun contrôle sur l'identifiant de l'élément "a". –

0

Vous pouvez le faire en utilisant quelque chose comme ceci:

document.getElementById("abc").href="xyz.php"; 

Vous devez définir un identifiant pour l'étiquette, votre tag ressemblera à ceci:

<div> 
    <a href="http://the/link/that/needs/to/be/changed">text</a> 
</div> 

<div> 
    <div> 
     //<script> or <style> must go here 
    </div> 
</div> 
Questions connexes