lysvanilla 2012-09-12 22:16
浏览 340
已采纳

js的attachEvent传递的参数总是最后一个,求解决办法

[code="html"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

About




123明细信息
456明细信息
789明细信息
ss

function initHrefColor(objs){ var objs=document.getElementsByTagName("a"); var obj=null; outer:for(var i=0;i<objs.length;i++){ obj=objs[i]; obj.attachEvent("onclick",function (){aaa(obj);}); }} initHrefColor(); function aaa(obj){ alert(obj.innerText); }

[/code]

不论点击哪个超链接alert(obj.innerText);获取到的值总是最后一个的值“789明细信息”。求解决方法,使能获取到相对应超链接的值。

  • 写回答

4条回答

  • jinnianshilongnian 2012-09-13 07:10
    关注

    1、var obj=null;

    outer:for(var i=0;i<objs.length;i++){

    obj=objs[i];

    obj.attachEvent("onclick",function (){aaa(obj);});

    }}

    aaa(obj);//obj=objs数组最后一个,所以这样肯定不对;
    

    2、attachEvent不支持Mozilla系列,需要addEventListener
    [url]http://www.cnblogs.com/poorpan/archive/2011/08/10/2134039.html[/url]

    3、我们通过event传递,然后通过如下代码拿到目标对象
    var src = event.srcElement;
    if(!src) {
    src = event.target;
    }
    [url]http://codex.wordpress.org.cn/HTML%E5%85%B3%E4%BA%8EEvent%E5%AF%B9%E8%B1%A1[/url]

    4、可执行代码:
    [code="java"]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

    About








    123明细信息
    456明细信息
    789明细信息
    ss

    function initHrefColor(){ var objs=document.getElementsByTagName("a"); var obj=null; outer:for(var i=0;i<objs.length;i++){ obj=objs[i]; //非Mozilla系列 if(obj.attachEvent) { obj.attachEvent("onclick",aaa); } else { obj.addEventListener("click",aaa); } }} function aaa(event){ var src = event.srcElement; if(!src) { src = event.target; } alert(src.innerText); } initHrefColor();


    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?