JQuery从动态生成的下拉列表中获取选定的值

时间:2015-10-20 12:33:48

标签: javascript jquery html drop-down-menu html-select

我有一个生成动态

的下拉列表

以下是Dropdown生成的代码段

<select class='selectAggregate'>
  <option>Select</option>
  <option>Min</option>
  <option>All</option>
</select>

如何使用JQuery

获取Seleceted选项

编辑我添加了我用过的jquery代码

 $('.selectAggregate').each(function()
            {
                var $val = $("option:selected",this).text();                    
        }   

selectAggregate是动态生成的下拉列表的类属性

4 个答案:

答案 0 :(得分:9)

基于您正在使用的假设&#34;直接&#34;绑定,它只会附加到代码进行事件绑定调用时页面上存在的元素。

在动态生成元素或操作选择器(如删除和添加类)时,需要使用Event Delegation委托事件方法.on()

一般语法

$(document).on('event','selector',callback_function)

实施例

$(document).on('change', ".selectAggregate", function(){
    alert($(this).val())
});

代替document,您应该使用最近的静态容器。

  

委派事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,我们可以使用委托事件将click事件绑定到动态创建的元素,并且还避免频繁附加和删除事件处理程序的需要。

答案 1 :(得分:3)

试试这个

 $("button").click(function(){
        $.each($(".selectAggregate option:selected"), function(){            
           var $val = $(this).text();

        });
    });

答案 2 :(得分:0)

$(document).on('change','.selectAggregate', function() {
var temp = $('.selectAggregate').children(":selected").text();
});

这将帮助您,在这里您可以获得动态生成的select的值。 之所以使用change事件,是因为select(option)内部的元素是动态生成的。

答案 3 :(得分:-1)

要获取所选值,您可以在js文件中使用以下语句。

$(".selectAggregate option:selected").val();