button的id与被调函数的函数名相同,js脚本为每个button的onclick赋值,测试HTML与js代码:<!doctype html>
<html>
  <head>
    <title>It's just a test</title>
    <meta charset="utf-8">
    <script src="jQuery.js"></script>
    <script src="test.js"></script>
  </head>
  <body>
    <input id="display_alert" type="button" value="CLICK ME!" />
  </body>
</html>
window.onload = init;function init()
{
    var elements = $(":button");    for (var i = 0; i < elements.length; i++)
        {
            elements[i].onclick = display_alert;
            //这样可以运行,在调试器里看到onclick的值是{...},类型是object                                                  
            elements[i].onclick = elements[i].id;
            //这是我开始的语句,这样不行,在调试器里看到onclick的值是"display_alert",类型是string                              
            alert(elements[i].id);
        }
}function display_alert() {
    alert("I'm an alert box too!!");
}请问如何才能实现我需要的功能,谁能给点提示?任何帮助都非常感激,耽误大家的时间我感到非常抱歉!先谢谢了!

解决方案 »

  1.   

    我追求的效果是:尽一切可能保持HTML文件的简洁,不想每个button都手动添加onclick属性,一切对元素的操作都用脚本通过id来实现,再次非常感谢!
      

  2.   

    你第一个onclick是对函数display_alert的引用,第二个onclick的值是id,是一个字符串
      

  3.   

    明白你的意思了,刚刚没看清楚,你这样试试:
    window["display_alert"]()
    window[elements[i].id]()
      

  4.   

    elements[i].onclick = window[elements[i].id];
      

  5.   

    非常感谢,成了,不过我第一次失败之后,修改成了
    elements[i].onclick = window[elements[i].id];
    就成功了,额外再问个问题可以吗?
    我刚学JS没多久,工作需要,没有时间系统地学习,手头现在有几本关于JS的书,但是没有时间细看,这两天有时间打算好好研究一下,兄弟能推荐几本比较好的书么?最好是英文版本的,我手头的书有:Head First HTML5 Programming
    JavaScript A Beginner's Guide Third Edition
    javascript:The Definitive Guide
    JavaScript and jQuery The Missing Manual 2nd Edition Oct 2011
    The Book Of JavaScript, 2nd Edition (2006)
    JavaScript:The Definitive Guide这几本看哪本比较好?这些都是我跑到amazon上看完书评之后下的盗版电子版,我觉得jQuery那个不错,打算看那个,或者你有更好的推荐吗?不胜感激!
    [JavaScript权威指南(第6版)].(JavaScript:The.Definitive.Guide).David.Flanagan.文字版