用jQuery选择选项

时间:2014-09-16 16:32:39

标签: javascript jquery ajax

我正处于问题的中间。

我有一个Ajax脚本返回“RuaAméricoVezzani@ParkAliança@Matão@ SP”,然后我将此结果拆分并与选择标记的选项匹配

      function (retorno)
        {
            var array_retorno = retorno.split('@');
            $(".endereco_load").val(array_retorno[0]);
            $(".bairro_load").val(array_retorno[1]);
            $(".cidade_load").val(array_retorno[2]);

            var estado = array_retorno[3].toString() ;

           $(".estado_load ").find('option').each(function() {
               if( $(this).val().match(estado)  ) {
                    $(this).attr({ selected : "selected" });
                }
           });

           // $(".estado_load option[value='" + estado + "']").attr({ selected : "selected" });

        },

问题是上面的代码无效。

当我设置我的变量estado时,例如

var estado = 'SP';

它有效

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

你没有命名你的功能而且.toString是没有必要的。

请参阅小提琴:http://jsfiddle.net/13s58xjj/

function splitString(retorno)
     {
        var array_retorno = retorno.split('@');
        $(".endereco_load").val(array_retorno[0]);
        $(".bairro_load").val(array_retorno[1]);
        $(".cidade_load").val(array_retorno[2]);

        var estado = array_retorno[3];
        alert(estado);
       $(".estado_load ").find('option').each(function() {
           if( $(this).val().match(estado)  ) {
                $(this).attr({ selected : "selected" });
            }
       });

你可以删除警报,我把它留下来进行调试

答案 1 :(得分:0)

变化:

   $(".estado_load ").find('option').each(function() {
       if( $(this).val().match(estado)  ) {
            $(this).attr({ selected : "selected" });
        }
   });

要:

$(".estado_load option").filter(function() {
    return this.value.trim() == estado.trim();
})
.attr('selected','selected');

答案 2 :(得分:0)

您应该尝试trim这样:

 if( $(this).val().trim().match(estado.trim())) {
      // all stuff here
 }

工作Fiddle.