2010-06-22 9 views
1

Je n'arrive pas à comprendre pourquoi cela ne fonctionne pas. Il change au premier lien et ne continuera pas. J'aurais aussi besoin de faire une boucle de sorte que lorsque vous cliquez dessus, il passe toujours à travers les liens. J'ai une variable php qui est le dernier #panelNum.JavaScript onclick changer href

<html> 
<head> 
<script language="JavaScript"><!-- 
function findLinkByHref(href) { 
    for (var i=0; i<document.links.length; i++) { 
    if (document.links[i].href == href) return i; 
    } 
    return -1; 
} 

function changeLinkHref(id,newHref,oldHref) { 
    if (document.links.length > 0) { 
    if (document.getElementById) { 
     document.getElementById(id).href = newHref; 
    } 
    else if (document.all) { 
     document.all[id].href = newHref; 
    } 
    else { 
     var index = findLinkByHref(oldHref); 
     if (index > -1) 
     document.links[index].href = newHref; 
    } 
    } 
} 
//--></script> 
</head> 
<body> 
<a id="myLink" href="#panel3" value="Change href" onClick="changeLinkHref('myLink','#panel4','#panel5','#panel5','#panel6')">somewhere</a> 
</body> 
</html> 

Répondre

1
function findLinkByHref(href) { 
    for (var i=0; i<document.links.length; i++) { 
    if (document.links[i].href == href) return i; 
    } 
} 

si vous revenez dans un si, il retourne encore - stoppant ainsi l'exécution de votre fonction.

Ceci est la seule boucle for, donc le seul endroit où vous itérez tous vos liens. On dirait que vous voulez faire dans la fonction changeLinkHref, quelque chose comme ..

else if (document.all) { 
     document.all[id].href = newHref; 
    } 
    else { 
     var index = findLinkByHref(oldHref); 
     for (var i=0; i<document.links.length; i++) { 
     // change all links? 
0

Vous pouvez faire quelque chose comme ça.

JS

function A() { 
document.getElementById("B").href="http://empireminecraft.com/"; 
} 

HTML

<button type="button" onClick="A()">Yo!</button> 
<a href="https://duckduckgo.com/?q=web+validator" id="B">Yo!</a> 

Je viens d'utiliser les URL que j'avais ouvert. Pour une raison quelconque, quand je l'ai essayé, je pouvais seulement le faire fonctionner dans IE