2010-12-06 4 views
75

Wie man den href Attributwert eines <a/> Tags durch Javascript auf Knopfdruck ändert?Wie man href von <a> Tag auf Knopfklick durch Javascript ändert

<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

Der Weg der Zugänglichkeit bestimmt nicht diese Art und Weise Links zu verwenden. Hier: http://xkr.us/js/links –

Antwort

112

Ohne eine href hat, wird der Klick die aktuelle Seite neu zu laden, so müssen Sie etwas wie folgt aus:

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

Oder die Scroll wie dies verhindern:

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

Oder return false in Ihrer f1 Funktion und:

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

.... oder die unaufdringliche Art und Weise:

<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

entfernen href Attribut:

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

wenn Link Arten wichtig sind dann:

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

Das Auslassen der href ändert ihren Stil und ihr Verhalten. Es fungiert dann als Anker anstelle eines Links. –

+1

Danke für die Antwort ihr Leute seid mir wirklich dabei behilflich. – Chauhan

21

Genau das, was Nick Carver Habe da aber ich denke es wäre am besten wenn man die DOM setAttribute Methode benutzt.

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

Es ist eine zusätzliche Codezeile, aber es ist strukturell besser.

+7

IMO gibt es keine Notwendigkeit, dies war eine DOM-Eigenschaft für immer, '.href' funktioniert in allen Browsern ... zum Beispiel würden Sie' .getAttribute verwenden ("id") 'anstatt nur' .id'? :) –

+2

Sie haben Recht, es macht nichts besonderes oder anders, es ist nur strukturell.Ich mag es, alle meine DOM-Funktionen auf diese Weise für spätere Debugging/Überprüfung zu haben: Es ist einfacher für mich zu sehen, was die Funktion mit diesen Methoden macht. Offensichtlich ist Ihre Antwort direkt auf das Geld :) – jakobhans

+2

Danke für die Antwort Sir. – Chauhan

0

Ich weiß es ein bisschen alt post. Trotzdem könnte es jemandem helfen.

Anstelle von Tag, wenn möglich können Sie dies auch.

<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>` 

Kommentare zu diesem Thema?

0

Um einen Link dynamisch darauf klicken ändern:

<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

mein nehmen auf sie hier. Ich musste eine URL erstellen, indem ich den Wert aus einem Textfeld sammelte, wenn der Benutzer auf die Schaltfläche "Senden" klickte.

<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>