本帖最后由 wren4255 于 2012-03-27 15:55:10 编辑

解决方案 »

  1.   

    问题1:嗯。。
    问题2:this指$("#id_testar_addleft")。。
    问题3:each会遍历你选择的所有值
      

  2.   

    图片
    第三个问题是  moveForm = function(){   这里,这个函数执行了两次,不是to_options.each(function(index, domEle2){  我写错了,不好意思
      

  3.   

    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是精简过的吧,原来的判断重复等都没用到
      

  4.   

    $("#id_testar_addleft" + " option:selected").each(moveForm);
    看这里。
      

  5.   

    谢谢楼上,还有两个问题不时很清楚2,this 是运行时对象,具体指什么,看怎么用的,放到("#id_testar_addleft" + " option:selected").each(里就是指选中的 option 我问的这个this是直接放到了一个函数中,函数是点按钮调用的,也没参数,我理解this应该是按钮本身,怎么不是呢?  3,each 就是jquery的遍历
    我问题写错了,不好意思,真正运行的时候我alert()了,moveForm = function(){  执行了两遍,不知道为什么
      

  6.   


    谢谢,现在就剩 问题2和结贴了,继续在线求解这个this是直接放到了一个函数中,函数是点按钮调用的,也没参数,我理解this应该是按钮本身,怎么不是呢?  
      

  7.   

     $("#id_testar_addleft" + " option:selected").each( function(){
            var temp = $(this).val(); 
            to_options.each(function(index, domEle2){
                if(temp == $(domEle2).val()){
                    addFlag = false;
                    return false;
                }
            });        if(addFlag){
                $("#id_testar_addright").append($(this));
            }
        };    这样结合起来看你就明白了
      

  8.   

    2,jquery 的选择符机制 就是实现了$(this)就是 jquery 选中的物体,比如$("#id1").(function(){}); 
    后面function中的 $(this)就是指$("#id1").它怎么实现的,这个要钻研jquery了,我是不明白,只会用3,each( )
    就是集合的遍历,选中两个当然就执行两次