@GivenCui
        
        2016-06-01T01:58:53.000000Z
        字数 3742
        阅读 805
    js高级
- 新建json假数据
 - 用Ajax访问
 - 用数组的相关操作
 - open()打开子页面,父子页面的传值
 - 封装练习
 - this的用法
 - DOM的元素的动态创建和删除
 - select标签和Select对象的属性
 
<!doctype html><html lang="en"><head><meta charset="UTF-8"><title>选人</title><style type="text/css">div {float: left;border: 1px solid red;}#main_div {width: 500px;height: 300px;margin-left: 300px;}#left_div {width: 200px;height: 300px;}#center_div {width: 94px;height: 300px;text-align: center;}#right_div {width: 200px;height: 300px;float: right;}#left_sel {width: 200px;height: 280px;}#right_sel {width: 200px;height: 280px;}input {margin-top: 30px;}</style><!-- 导入事件工具js文件 --><script type="text/javascript" src="EventUtil.js"></script></head><body><div id="main_div"><!-- 左边的div --><div id="left_div"><label id="left_label">0</label><select id="left_sel" multiple></select></div><!-- 中间的div --><div id="center_div"><input type="button" value="添加" id="add_btn" /><br /><input type="button" value="移除" id="remove_btn" /><br /><input type="button" value="全部添加" id="addAll_btn" /><br /><input type="button" value="全部移除" id="removeAll_btn" /></div><!-- 右边的div --><div id="right_div"><label id="right_label">0</label><select id="right_sel" multiple></select></div></div><!-- ***************************************************************************** --><script type="text/javascript">//左边selvar leftSel = $("left_sel");//左边数据数组var leftPersonArray = new Array();//右边selvar rightSel = $("right_sel");//右边数据数组var rightPersonArray = new Array();//window的onload事件EventUtil.addHandler(window, "load", function () {//1、初始化数据var personObj = [{name : "张三"},{name : "李四"},{name : "王五"},{name : "赵六"},{name : "冯七"}];//遍历personObjfor (var tempIdx in personObj) {//得到每个person对象var tempPerson = personObj[tempIdx];//添加到左边数据数组leftPersonArray.push(tempPerson);//重置左边selresetSel(leftSel, tempPerson.name);//人数leftAndRightCount();}//2、给左边sel添加事件EventUtil.addHandler(leftSel, "dblclick", function () {//添加右边数据数组// this.selectedIndex 相当于leftSel.selectedIndex,获得选中option的下标rightPersonArray.push(leftPersonArray[this.selectedIndex]);//重置右边selresetSel(rightSel, leftPersonArray[this.selectedIndex].name);//删除左边数据数组leftPersonArray.splice(this.selectedIndex, 1);//删除左边option//this.options 获得所有option 是一个数组leftSel.removeChild(this.options[this.selectedIndex]);//人数leftAndRightCount();});//3、给添加按钮添加事件EventUtil.addHandler($("add_btn"), "click", function () {//遍历optionsfor (var i = 0; i < leftSel.options.length; i++) {//找出选中的optionif (leftSel.options[i].selected) {//添加右边数据数组rightPersonArray.push(leftPersonArray[i]);//重置右边sel的方法resetSel(rightSel, leftPersonArray[i].name);//删除左边数据数组leftPersonArray.splice(i, 1);//删除左边的optionleftSel.removeChild(leftSel.options[i]);//每次删除后要改变下标// i -= 1;i--;}}//人数leftAndRightCount();});//4、右边sel添加事件//5、给移除按钮添加事件//6、给全部添加按钮添加事件EventUtil.addHandler($("addAll_btn"), "click", function () {//遍历左边的optionsfor (var i = 0; i < leftSel.options.length; i++) {//添加右边数据数组rightPersonArray.push(leftPersonArray[i]);//重置右边selresetSel(rightSel, leftPersonArray[i].name);//删除左边数据数组leftPersonArray.splice(i, 1);//删除左边optionleftSel.removeChild(leftSel.options[i]);//改变下标i--;}//人数leftAndRightCount();});//7、给全部移除按钮添加事件});/******************封装的方法*****************************************************///封装左边和右边人数的方法function leftAndRightCount () {$("left_label").innerHTML = leftPersonArray.length;$("right_label").innerHTML = rightPersonArray.length;}//封装重置sel的方法function resetSel (sel, textNodeValue) {//创建optionvar option = createElement("option");//创建textNodevar optionValue = createTextNode(textNodeValue);//添加textNodeoption.appendChild(optionValue);//添加optionsel.appendChild(option);}//封装创建元素的方法function createElement (elementName) {return document.createElement(elementName);}//封装创建textNode的方法function createTextNode (elementValue) {return document.createTextNode(elementValue);}//封装通过id获取标签的方法function $ (idName) {return document.getElementById(idName);}</script></body></html>