代码之家  ›  专栏  ›  技术社区  ›  Emrah Şentürk

使用jquery中动态创建的select的select值获取div html

  •  -1
  • Emrah Şentürk  · 技术社区  · 6 年前

    我在jQuery中使用select选项动态创建了一个div。这是一个样品。

    <div id="myDiv">
        <select id="mySelect">
            <option selected value="0">A</option>
            <option value="1">B</option>
            <option value="2">C</option>
            <option value="3">D</option>
        </select>
    </div>
    

    0是默认的选定值。

    当我得到这种div的html时 $("#myDiv").html() ,它得到下面的内容。

    <div id=“myDiv”>
    <select id=“mySelect”>
    <option selected value=“0”>A</选项>
    <option value=“1”>B</选项>
    <option value=“2”>C</选项>
    <option value=“3”>D</选项>
    </选择>
    </分区>
    

    和上面的代码一样,这是正常的。

    但是,当我将选定值更改为2时, $(“35; myDiv”).html() 仍然得到相同的代码。0仍然是选定的值。

    如何获取div的html,以及动态更改的值?

    3 回复  |  直到 6 年前
        1
  •  0
  •   Henock    6 年前

    你可以这样做:

    $('#yourSelect option:selected').val()
    
        2
  •  0
  •   Sagar Tank    6 年前
     $('#myDiv').find("#mySelect").change(function () {
                    alert($("#mySelect option:selected").text());
                    alert($("#mySelect option:selected").val());
                });
    

    在此处输入代码

        3
  •  0
  •   mscdeveloper    6 年前

    可能是这样的:

    function create_select(){
       	var select=$('<select/>').attr('id','mySelect');
       	var option0=$('<option/>').val(0).text('A').attr('selected', true);
       	   select.append(option0);
       	var option1=$('<option/>').val(1).text('B');
       	  select.append(option1);
       	var option2=$('<option/>').val(2).text('C');
       	  select.append(option2);
       	var option3=$('<option/>').val(3).text('D');
       	  select.append(option3);
       	$('#myDiv').empty().append(select);
    }
    
    
    function change_select_value(_new_val){
    	$('#mySelect option').removeAttr('selected');
    	$('#mySelect').val(_new_val).change();
    }
    
    
    $(document).on('change', '#mySelect', function(){    //conctruction for Dynamically created element
            alert('change value to =>'+this.value);  //or  $(this).val();
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    
    <div id="myDiv"></div>
    <input type="button" value="Create Select" onclick="create_select();" /></br>
    <input type="button" value="Set option C (value=2)" onclick="change_select_value(2);" /></br>