2010-12-06 3 views
75

Comment changer la valeur d'attribut href d'un tag <a/> en Javascript sur le bouton click?Comment changer href de <a> tag on button click through javascript

<script type="text/javascript"> 
    function f1() 
    { 
    document.getElementById("abc").href="xyz.php"; 
    } 
</script> 

<a href="" id="abc">jhg</a> 
<a href="" id="" onclick="f1()">jhhghj</a> 
+0

La Voie d'accessibilité dicte de ne pas utiliser les liens de cette manière. Ici: http://xkr.us/js/links –

Répondre

112

Sans avoir un href, le clic recharger la page en cours, vous devez donc quelque chose comme ceci:

<a href="#" onclick="f1()">jhhghj</a> 

ou empêcher le défilement comme ceci:

<a href="#" onclick="f1(); return false;">jhhghj</a> 

Ou return false dans votre f1 fonction et:

<a href="#" onclick="return f1();">jhhghj</a> 

.... ou, la façon discrète:

<a href="#" id="abc">jhg</a> 
<a href="#" id="myLink">jhhghj</a> 

<script type="text/javascript"> 
    document.getElementById("myLink").onclick = function() { 
    document.getElementById("abc").href="xyz.php"; 
    return false; 
    }; 
</script> 
5

supprimer href attribut:

<a id="" onclick="f1()">jhhghj</a> 

si les styles de lien sont importants alors:

<a href="javascript:void(f1())">jhhghj</a> 
+1

En laissant le href va changer son style et son comportement. Il agit alors comme une ancre au lieu d'un lien. –

+1

Merci de votre réponse, vous m'aidez vraiment. – Chauhan

21

Exactement ce que Carver Nick fait là mais je pense qu'il serait préférable d'utiliser la méthode DOM setAttribute.

<script type="text/javascript"> 
    document.getElementById("myLink").onclick = function() { 
    var link = document.getElementById("abc"); 
    link.setAttribute("href", "xyz.php"); 
    return false; 
    } 
</script> 

Il s'agit d'une ligne de code supplémentaire, mais elle est mieux structurée.

+7

IMO là n'est aucun besoin ici, ceci a été une propriété DOM pour toujours, '.href' fonctionne dans tous les navigateurs ... par exemple emploieriez' .getAttribute ("id") 'au lieu de juste' .id'? :) –

+2

Vous avez raison, ça ne fait rien de spécial ou de différent, c'est juste structurel.J'aime avoir toutes mes fonctions DOM de cette façon pour un débogage/révision ultérieur: il m'est plus facile de voir ce que la fonction fait avec ces méthodes. Évidemment, votre réponse est juste sur l'argent :) – jakobhans

+2

Merci pour la réponse Sir. – Chauhan

0

Je connais son vieux message. Pourtant, cela pourrait aider quelqu'un.

Au lieu de tag, si possible, vous pouvez aussi cela.

<script type="text/javascript"> 
     function IsItWorking() { 
      // Do your stuff here ... 
      alert("YES, It Works...!!!"); 
     } 
    </script> 

    `<asp:HyperLinkID="Link1"NavigateUrl="javascript:IsItWorking();"`   `runat="server">IsItWorking?</asp:HyperLink>` 

Un commentaire à ce sujet?

0

Pour avoir un lien changer dynamiquement le clic:

<input type="text" id="emailOfBookCustomer" style="direction:RTL;"></input> 
     <a 
     onclick="this.href='<%= request.getContextPath() %>/Jahanpay/forwardTo.jsp?handle=<%= handle %>&Email=' + document.getElementById('emailOfBookCustomer').value;" href=''> 
    A dynamic link 
      </a> 
0
<a href="#" id="a" onclick="ChangeHref()">1.Change 2.Go</a> 

<script> 
function ChangeHref(){ 
document.getElementById("a").setAttribute("onclick", "location.href='http://religiasatanista.ro'"); 
} 
</script> 
0

Voici mon avis sur la question. J'avais besoin de créer une URL en collectant la valeur à partir d'une zone de texte, lorsque l'utilisateur appuie sur un bouton Soumettre.

<html> 
 
<body> 
 

 
Hi everyone 
 

 
<p id="result"></p> 
 

 
<textarea cols="40" id="SearchText" rows="2"></textarea> 
 

 
<button onclick="myFunction()" type="button">Submit!</button> 
 

 
<script> 
 
function myFunction() { 
 
    var result = document.getElementById("SearchText").value; 
 
\t document.getElementById("result").innerHTML = result; 
 
\t document.getElementById("abc").href="http://arindam31.pythonanywhere.com/hello/" + result; 
 
} \t \t 
 
</script> 
 

 

 
<a href="#" id="abc">abc</a> 
 

 
</body> 
 
<html>

Questions connexes