<a href="dsfjlsdjf" onclick="testGet()">请教编写testGet()函数获取这个超链接href属性,限制如下
不能用
document.getElementById();
document.getElementsByName();
document.getElementsByTagName();
就是要获得哪个被点击的标签自身的对象

解决方案 »

  1.   


    <a href="dsfjlsdjf" onclick="testGet(this)">test</a>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function testGet(o){
    alert(o.href);
    }
    //-->
    </SCRIPT>
      

  2.   

    <a href="dsfjlsdjf" onclick="testGet(event)">test</a>
    <script>
    function testGet(e){
    var e = window.event || e;
    var o = e.srcElement || e.target;
    alert(o.href);
    }
    </script>
      

  3.   

    #2楼兼容IE 和Firefox,而#1楼属IE only,应该采用#2楼代码。
      

  4.   

    兼容一下下 :-)<a href="dsfjlsdjf" onclick="testGet(this.href)">test</a>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function testGet(o){
        alert(o);
    }
    //-->
    </SCRIPT>
      

  5.   

    return upsider:
    我推介#2楼写法,不仅仅基于LZ的要求。
    例如:有表单——<div id="show">
    <li url="http://wwww/dddd.mp3">fdsfd</li>
    <li url="http://wwww/wwe.mp3">fdsfd</li>
    <li url="http://wwww/sdds.mp3">fdsfd</li>
    </div>请写一个方法,使得点击每一行就能够获取对应的“url”值,要求兼容IE和FF,我的方法——<div id="show">
    <li url="http://wwww/dddd.mp3">fdsfd</li>
    <li url="http://wwww/wwe.mp3">fdsfd</li>
    <li url="http://wwww/sdds.mp3">fdsfd</li>
    </div><script type=text/javascript>
    var  $ = function(o){return document.getElementById(o) || o}
    $("show").onclick = function(e){
    var e = e || window.event;
    var o = e.srcElement || e.target;
    alert(o.getAttribute('url'))
    //$("player").url = o.getAttribute('url')
    }
    </script>是否简洁明了些呢?
      

  6.   

    return upsider:
    1、按照HTML的DOM标签、功能JS脚本、样式CSS分离的基本原则,应该如此写。不然的话得在每行链接代码中添加“onclick="testGet(this.href)"”,这既多余影响效率,又不便于维护。虽然可以通过后台自动批量输出到客户端,但浏览器得逐行解释和绑定鼠标“onclick”事件,而我那写法通过闭包预绑定的方法只有一个$("show")。
    2、我的是对的,在IE8.0和Firefox3.6下测试通过。你的是IE6.0?
      

  7.   

    你说的第一条是对的 :-)
    但是对于这里的特定需求而言,楼主并不希望绑定事件......
    而且,说到扩展需求,建议把你代码里面把li标签之间的文本换成img,例如: <li url="http://wwww/sdds.mp3"><img src="test.jpg" /></li>试试......:-)
      

  8.   

    return upsider:
    这2很简单啊,因为鼠标点击了图片而没有在“li”上,这很好解决啊。<div id="show">
    <li url="http://wwww/dddd.mp3"><img src="test.jpg"></li>
    <li url="http://wwww/wwe.mp3"><img src="test.jpg"></li>
    <li url="http://wwww/sdds.mp3"><img src="test.jpg"></li>
    </div><script type=text/javascript>
    var  $ = function(o){
         return document.getElementById(o) || o
    }
    $("show").onclick = function(e){
    var e = e || window.event;
    var o = e.srcElement || e.target;
    alert(o.getAttribute('url') || o.parentNode.getAttribute('url'))
    }
    </script>
      

  9.   

    干脆放一起吧:<style>
    li{list-style-type:none}
    </style>
    <div id="show">
    <li url="http://wwww/dddd.mp3">dsddd</li>
    <li url="http://wwww/wwe.mp3">22232</li>
    <li url="http://wwww/sdds.mp3">trtrt</li>
    <li url="http://wwww/dddd.mp3"><img src="test.jpg"></li>
    <li url="http://wwww/wwe.mp3"><img src="test.jpg"></li>
    <li url="http://wwww/sdds.mp3"><img src="test.jpg"></li>
    </div><script type=text/javascript>
    var  $ = function(o){
         return document.getElementById(o) || o
    }
    $("show").onclick = function(e){
         var e = e || window.event;
         var o = e.srcElement || e.target;
         alert(o.getAttribute('url') || o.parentNode.getAttribute('url'))
    }
    </script>
      

  10.   

    <script type=text/javascript>
    var  $ = function(o){
         return document.getElementById(o) || o
    }
    $("show").onclick = function(e){
    var e = e || window.event;
    var o = e.srcElement || e.target;
    alert(o.getAttribute('url') || o.parentNode.getAttribute('url'))
    }
    </script>