在 jquery 中使用动态 select 下拉菜单时无法获取选项文本

Cannot get option text when using dynamic select dropdown in jquery

在这里,我使用 jquery

在 select 下拉列表中获取选项文本
tmp_selected  = $('#new_autoccType option:selected').text();

但是,我无法使字符串相等,在警报中获取正确的选项文本。 如果字符串相等,则不会进入 if 循环。 这仅在我使用动态选项值时不起作用,如果它是静态的,我可以获得这些值。

有人可以帮忙吗?

var def_expval="";
var newEC = 1;
var strNewCC = 1;


data = '<select class="tablefont" name="new_autoccType" id="new_autoccType">'; 
 data+='<option value= '+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+newEC+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+' > '+"New Electronic Check"+' </option>';
    data+='<option value= '+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+strNewCC+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+' > '+"New Debit/Credit Card"+' </option>';
data +='</select>';

$("#somedivs").html(data);


$('#new_autoccType').change(function() {  
            selOption =  $(this).val();
             tmp_selected  = $('#new_autoccType option:selected').text();
      alert(tmp_selected); 
      if(tmp_selected == "New Electronic Check")
            {
              alert("inside ec");
     //some operations 
            }
          if (tmp_selected == "New Credit/Debit Card")
            {
           alert("inside cc");
           //some operations
            } 
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="somedivs"></div> 

Static JS FIDDLE

Dynamic JS FIDDLE - PROBLEM HERE

尝试删除空格,对于此操作,您可以使用 trim 函数

var tmp_selected = $('#new_autoccType option:selected').text().trim();

也为第二个条件更改文本

if (tmp_selected == "New Credit/Debit Card")if (tmp_selected == "New Debit/Credit Card")

演示:http://jsfiddle.net/hs74sby1/13/

您的字符串中有空格使用 $.trim(tmp_selected) 函数删除空格

if(tmp_selected == " New Electronic Check ")
           {
                alert("inside ec");
                //some operations   
           }
     if (tmp_selected == " New Debit/Credit Card ")
           {
             alert("inside cc");
            //some operations
           } 

Working Link

使用 trim() 从所选文本中删除空格,如下所示:

 var tmp_selected = $('#new_autoccType option:selected').text().trim();

js fiddle

试试这个

$('#new_autoccType').change(function() {  
               selOption =  $(this).val();
               tmp_selected  = $('#new_autoccType option:selected').text();
               alert(tmp_selected); 
               if(tmp_selected.trim() == "New Electronic Check")
               {
                    alert("inside ec");
                    //some operations   
               }
               if (tmp_selected.trim() == "New Debit/Credit Card")
               {
                 alert("inside cc");
                //some operations
               } 
}).change();

Se $.trim(tmp_selected) 进行比较,去掉space

$('#new_autoccType').change(function() {  
           selOption =  $(this).val();
            tmp_selected  = $('#new_autoccType option:selected').text();
           alert(tmp_selected); 
           if($.trim(tmp_selected) == "New Electronic Check")
           {
                alert("inside ec");
                //some operations   
           }
      if ($.trim(tmp_selected) == "New Credit/Debit Card")
           {
             alert("inside cc");
            //some operations
           } 
    }).change();