首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

一个小功能已经实现,代码不是很明白。解决思路

2012-04-09 
一个小功能已经实现,代码不是很明白。功能就是点按钮,把选中的select的option,转移到另一个select的

一个小功能已经实现,代码不是很明白。
功能就是点按钮,把选中的<select>的<option>,转移到另一个<select>的<option>,如图:





JScript code
$("#id_bu_add").click(function(){    var addFlag = true;    var to_options = $("#id_testar_addright");    moveForm = function(){  //问题1,这是什么写法,moveForm就相当于函数名么?        var temp = $(this).val(); //问题2,这里的this是选择的对象,这是什么语法呢?        to_options.each(function(index, domEle2){            if(temp == $(domEle2).val()){                addFlag = false;                return false;            }        });//问题3,当我选择两个值的时候,这个函数执行两次,为什么?        if(addFlag){            $("#id_testar_addright").append($(this));        }    };    $("#id_testar_addleft" + " option:selected").each(moveForm);});//问题4,为什么结果是数据从左移动到右,而不是拷贝到右?///////////////////下面是html,class<table><tr><td><select id="id_testar_addleft" multiple="true"><option>dd</option><option>ww</option></select></td><td><button id="id_bu_add" > → </button></td><td><select id="id_testar_addright" multiple="true"></select></td></tr></table>



[解决办法]
问题1:嗯。。
问题2:this指$("#id_testar_addleft")。。
问题3:each会遍历你选择的所有值。。。
[解决办法]
1,是的,
2,this 是运行时对象,具体指什么,看怎么用的,
放到
$("#id_testar_addleft" + " option:selected").each(
里就是指选中的 option 
3,each 就是jquery的遍历
4,this是对象引用,所以 append(this 就是移动了,
如果想复制过去,
 $("#id_testar_addright").append($(this).clone());
就行了

5,你的HTML是精简过的吧,原来的判断重复等都没用到

热点排行