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(","));
再说你这句话,页面加载的时候调用一次,点击事件根本不会走它
[其他解释]
这就跟变量的作用域一样。
[其他解释]
});
});
$("#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>
[其他解释]
哦哦,明白了