用来缓存页面上复选框的数据,比较适合用于ajax提交。
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="script/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
var src = new Array();
var dest = new Array();
/**
* 返回变动的选择
*/
function getNotEquals(){
var ne = new Array();
for(var i=0,endi=dest.length; i<endi; i++){
for(var ii=0,endii=src.length; ii<endii; ii++){
if(dest[i].key == src[ii].key){
if(dest[i].value != src[ii].value){
ne.push(dest[i]);
break;
}
}
}
}
return ne;
}
/**
* 向源数组中写数据
*/
function src_put(key, value){
var nf = true;
for(var i=0; i<src.length; i++){
if(key == src[i].key){
nf = false;
src[i] = {"key":key, "value":value};
break;
}
}
if(nf){
src.push({"key":key, "value":value});
}
}
/**
* 向目地数组中写数据
*/
function dest_put(key, value){
var nf = true;
for(var i=0; i<dest.length; i++){
if(key == dest[i].key){
nf = false;
dest[i] = {"key":key, "value":value};
break;
}
}
if(nf){
dest.push({"key":key, "value":value});
}
}
/**
* 显示结果
*/
function showResult(){
var txt = "q=q";
var ne = getNotEquals();
/***/
for(var i=0,end=ne.length; i<end; i++){
if(ne[i].value){
txt += "&y="+ne[i].key;
}else{
txt += "&n="+ne[i].key;
}
}
/***/
alert(txt);
}
/**
* 当产生修改动作时
*/
function chooseRow(rn){
if($("#chk"+rn).attr("checked")){
dest_put(rn, true);
}else{
dest_put(rn, false);
}
}
/**
* 初始化数据
*/
function initData(){
var html = "";
var row = "";
var rand = 0;
for(var i=0; i<50; i++){
rand = parseInt(Math.random()*10);
if(rand/2==0){
row = '<input id="chk'+i+'" type="checkbox" value="'+i+'" checked="checked" οnclick="chooseRow('+i+')"/>'+i;
src_put(i, true);
}else{
row = '<input id="chk'+i+'" type="checkbox" value="'+i+'" οnclick="chooseRow('+i+')"/>'+i;
src_put(i, false);
}
row = "<label>"+ row +"</label> ";
html += row;
}
$("#context0").html(html);
}
</script>
</head>
<body>
<table align="center" width="300px" border="1">
<tr align="center">
<td><input type="button" value="添加数据" οnclick="initData()"/></td>
<td> </td>
</tr>
<tr align="center">
<td><input type="button" value="显示结果" οnclick="showResult()"/></td>
<td> </td>
</tr>
</table>
<br/>
<br/>
<table align="center" width="500px" border="1">
<tr>
<td id="context0"> </td>
</tr>
</table>
<br/>
</body>
</html>