在写Jquery代码的时候为什么我定义了一位数组 var arr=new Array();但是运行的时候老是弹出javascript未定义arr啊

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("input[name=names]").click(function () {
                    var arr = new Array();
                    $("input[name=names]:checked").each(function (key, value) {
                        arr[key] = $(value).val();
                    });
                });
                $("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));
            });
        </script>
    </head>
    <body>
    <input type="checkbox" name="names" value="jim" />jim
    <input type="checkbox" name="names" value="tom" />tom
    <input type="checkbox" name="names" value="jine" />jine
    <p id="msgNames"></p>
    </body>
    </html>
      

  2.   

    alert($('input:[name=names]:checked').length); 
      

  3.   

    $("input[name=names]").click(function () {
                    var arr = new Array();
                    $("input[name=names]:checked").each(function (key, value) {
                        arr[key] = $(value).val();
                    });
                });
                $("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));这句话放到click里面的function里面试试的
      

  4.   

    很明显定义的arr过了生命周期,所以成为了未定义的arr
    $("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));
    这句应该放在click函数里面才可以的
      

  5.   

    明显arr定义在click事件里了,事件完成释放了就
     $("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));
    再说你这句话,页面加载的时候调用一次,点击事件根本不会走它