日期:2014-05-17  浏览次数:20885 次

Jquery
在写Jquery代码的时候为什么我定义了一位数组 var arr=new Array();但是运行的时候老是弹出javascript未定义arr啊
------最佳解决方案--------------------
$("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里面试试的
------其他解决方案--------------------
贴代码看看..
------其他解决方案--------------------
你在哪里定义,又是在哪里调用的?
------其他解决方案--------------------
alert($('input:[name=names]:checked').length); 
------其他解决方案--------------------
很明显定义的arr过了生命周期,所以成为了未定义的arr
$("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));
这句应该放在click函数里面才可以的
------其他解决方案--------------------
明显arr定义在click事件里了,事件完成释放了就
 $("#msgNames").text("共选中" +arr.length + "项:" + arr.join(","));
再说你这句话,页面加载的时候调用一次,点击事件根本不会走它
------其他解决方案--------------------
这就跟变量的作用域一样。
------其他解决方案--------------------
引用:
$("input[name=names]").click(function () {
                var arr = new Array();
                $("input[name=names]:checked").each(function (key, value) {
                    arr[ke……



正解
------其他解决方案--------------------
<!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();