JavaScript onclick更改href

时间:2010-06-22 21:03:24

标签: javascript

我无法弄清楚为什么这不起作用。它改为第一个链接,不会继续。我也需要它循环,所以当你点击它总是圈出链接我有一个PHP变量,这是最后一个#panelNum。

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

2 个答案:

答案 0 :(得分:1)

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

如果你返回if,它仍会返回 - 从而停止执行你的函数。

这是唯一的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?

答案 1 :(得分: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>

我刚刚使用过已打开过的网址。 出于某种原因,当我尝试它时,我只能让它在IE中工作