$(".select2").append($userSelect.clone());
var b=new Boolean($(".select2 option:contains('"+$userSelect.html()+"')").length);
alert(b);
length的长度为0 我要判断当找到时,执行,但是始终找不到

解决方案 »

  1.   

    var $userSelect=$(".select1 option:selected");
    <select class="select1" multiple>
    <option>张三&nbsp;女&nbsp;前台组</option>
    <option>李四&nbsp;男&nbsp;销售组</option>
    <option>王五&nbsp;男&nbsp;销售组</option>
    <option>赵六&nbsp;女&nbsp;市场部</option>
    <option>周七&nbsp;男&nbsp;市场部</option>
    <option>吴八&nbsp;男&nbsp;公关组</option>
    <option>郑九&nbsp;女&nbsp;媒介组</option>
    <option>冯十&nbsp;男&nbsp;资源组</option>
    </select>
      

  2.   


    <!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" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>new_file</title>
    <style type="text/css">
    body
    {
    font-size:14px;
    }
    *
    {
    margin: 0;
    padding: 0;
    }
    .main
    {
    margin: 0 auto;
    margin-top: 50px;
    width: 490px;
    height: 300px;
    border: 1px solid black;
    }
    .main div
    {
    float: left;
    }
    .left
    {
    width: 200px;
    height: 300px;
    margin:20px 0 0 20px;
    }
    .left input
    {
    margin-top: 10px;
    margin-bottom: 10px;
    width: 150px;
    }
    .middle
    {
    width:100px;
    }
    .insert
    {
    margin-top: 150px;
    display: block;
    }
    .right
    {
    width: 170px;
    height: 300px;
    margin-top:20px;
    }
    .select1
    {
    width:150px;
    height:200px;
    }
    .select2
    {
    width:150px;
    height:228px;
    margin-top: 10px;
    } </style>
        <script type="text/javascript">
         $(function()
    {
    var opts=$(".select1 option");//opts放在keyup函数外边是为了重复选取opts
    $(".keyWord").keyup(function()
    {
    $(".select1").html(opts.filter(":contains('" + $(this).val() + "')"));//option不支持隐藏,所以直接html()
    })
    $(".insert").click(function()
    {
    var $userSelect=$(".select1 option:selected");

    $(".select2").append($userSelect.clone());
    var b=new Boolean($(".select2 option:contains('"+$userSelect.html()+"')").length);
    alert(b);

    })
    $(".delete").click(function()
    {
    $(".select2 option:selected").remove();
    })
    $(".select1").dblclick(function()//IE不支持直接选.select option
    {
    $(".select2").append($("option:selected",this).clone());
    })
    })
        </script>
    </head>
    <body>
    <div class="main">
    <div class="left">
    <span>输入关键字或者从列表中选择</span><br />
    <input type="text" value="" class="keyWord" /><br />
    <select class="select1" multiple>
    <option>张三&nbsp;女&nbsp;前台组</option>
    <option>李四&nbsp;男&nbsp;销售组</option>
    <option>王五&nbsp;男&nbsp;销售组</option>
    <option>赵六&nbsp;女&nbsp;市场部</option>
    <option>周七&nbsp;男&nbsp;市场部</option>
    <option>吴八&nbsp;男&nbsp;公关组</option>
    <option>郑九&nbsp;女&nbsp;媒介组</option>
    <option>冯十&nbsp;男&nbsp;资源组</option>
    </select>
    </div>
    <div class="middle">
    <button class="insert">添加>></button>
    <button class="delete"><<删除</button>
    </div>
    <div class="right">
    <span>选中的信息</span><br />
    <select class="select2" multiple>
    </select>
    </div>
    </div>
    </body>
    </html>
      

  3.   

    这个需求处理起来比较麻烦,我测试下来的情况是,如果:contains()选择器中的文本包含实体字符(在你的代码中就是&nbsp;)就无法正确匹配。
    并且,你的.select1下拉列表是允许多选的,在多选的情况下,$(".select1 option:selected").html()获取的实际上是集合中第一个 option的innerHTML值。