<html>
<head>
<meta charset="utf-8">
<title>Picture List</title>
</head>
<body>
<h2>Picture List</h2>
<ul id="pic1">
<li>
  <a href="images/person.jpg" onClick="showPic(this);return false;" title="person">Person</a>
</li>
<li>
  <a href="images/cat.jpg" onClick="showPic(this);return false;" title="cat">Cat</a>
</li>
<li>
  <a href="images/travel.jpg" onClick="showPic(this);return false;" title="travel">Travel</a>
</li>
</ul>
<img id="pichold" src="images/null.jpg" alt="UNLL PICTURE" /><script type="text/javascript" >
function showPic(pic)
{
var source = pic.getAttribute("href");
var picholder = document.getElementById("pichold");
picholder.setAttribute("href",source);
}
</script>
</body>
</html>刚开始学,为什么无参的时候 Script函数能够正常运行,但是参数是this的时候就出问题了呢?
是照着JavaScript DOM编程艺术模仿的。谢谢。

解决方案 »

  1.   

    貌似没错的样子啊
    this指的应该是点击的a标签啊
      

  2.   

    要不要参都无所谓呢;
    直接这样就可以了
    function showPic()

    var source = this.getAttribute("href");
    var picholder = document.getElementById("pichold");
    picholder.setAttribute("href",source);
    }
      

  3.   

    可是不对啊,按理说应该不跳转,而在<img>的地方显示 选择的图片。
    可是我执行的结果是 直接跳转到href的图片了。在函数中写个alert的函数也不会被执行。
      

  4.   

    这样也不行呃,行的结果是 直接跳转到href的图片了。
    不能实现在在<img>的地方显示 选择的图片,不跳转到href。自己写个
    function showPic()
    {
        alert("hello");
    }
    却能够执行。
      

  5.   

    楼主没参数时候是var source = this.getAttribute("href");这样写吗?
    如果这样this指的是window吧,如果你获取得的是点击的这个对象那就不会跳转了