2010-06-22 57 views
1

我不明白爲什麼這不起作用。它更改爲第一個鏈接,不會繼續。我也需要它來循環,所以當你點擊它總是通過鏈接我有一個PHP變量,這是最後一個#panelNum。JavaScript onclick變化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> 

回答

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

如果您在返回如果它仍返回 - 因此停止你的函數的執行。

這是唯一的for循環,因此唯一的地方是你遍歷所有的鏈接。這聽起來像你想在changeLinkHref函數中這樣做,就像..

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

你可以做這樣的事情。

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> 

我只是使用的URL,我不得不打開。 由於某種原因,當我嘗試它時,我只能讓它在IE中運行