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(","));
再说你这句话,页面加载的时候调用一次,点击事件根本不会走它
------其他解决方案--------------------这就跟变量的作用域一样。
------其他解决方案--------------------
正解
------其他解决方案--------------------<!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();