Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery从动态生成的下拉列表中获取所选值_Javascript_Jquery_Html_Drop Down Menu_Html Select - Fatal编程技术网

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

Javascript JQuery从动态生成的下拉列表中获取所选值,javascript,jquery,html,drop-down-menu,html-select,Javascript,Jquery,Html,Drop Down Menu,Html Select,我有一个动态生成的下拉列表 下面是生成的下拉列表的代码片段 <select class='selectAggregate'> <option>Select</option> <option>Min</option> <option>All</option> </select> selectAggregate是动态生成的下拉列表的class属性 $("button").click(fun

我有一个动态生成的下拉列表

下面是生成的下拉列表的代码片段

<select class='selectAggregate'>
  <option>Select</option>
  <option>Min</option>
  <option>All</option>
</select>
selectAggregate
是动态生成的下拉列表的class属性

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

        });
    });
试试这个

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

        });
    });

基于您正在使用“直接”绑定的假设,该绑定将仅附加到代码进行事件绑定调用时页面上存在的元素

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

一般语法

范例

您应该使用最接近的静态容器来代替
文档

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


基于您正在使用“直接”绑定的假设,该绑定将仅附加到代码进行事件绑定调用时页面上存在的元素

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

一般语法

范例

您应该使用最接近的静态容器来代替
文档

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


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

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

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

$(".selectAggregate option:selected").val();
这将帮助您,在这里您可以获得动态生成的select的值。 之所以使用更改事件,是因为select(选项)中的元素是动态生成的

这将帮助您,在这里您可以获得动态生成的select的值。
之所以使用更改事件,是因为正在动态生成select(选项)中的元素。

向我们展示您如何尝试
$('.selectAggregate').val()
'var$val=$(“选项:已选”,this).val()
对当前元素使用
this'
最好将value属性添加到选项标记中,然后尝试相同的添加值,并使用
text()
获取
$('.class')。每个(函数(){var$val=$(“选项:已选择”,this).val();})
.class
是下拉列表的类值显示您如何尝试
$('.selectAggregate').val()
'var$val=$(“选项:已选择”,this).val()
对当前元素使用
this'
最好将value属性添加到选项标记中,然后尝试相同的添加值,并使用
text()
获取
$('.class')。每个(函数(){var$val=$(“选项:已选择”,this).val();})
。class
是下拉列表的类值选择没有值如果发生这种情况,则文本将作为值进行计算。然后您需要提供您在此处尝试过的代码,以便修复。根据您更新的问题编辑了以上我的答案,请参阅:选择“无值”。如果出现这种情况,则文本将作为值进行计算。然后,您需要提供您在此处尝试过的代码,以便对其进行修复。根据您更新的问题编辑了以上我的答案,请参阅:是,您明白我的观点:)。但是我需要在函数中获取所选的值。即使手动调用更改事件,该方法仍然不能用于任何动态生成的dom对象。您所做的内存中更改仍然无法访问。有人有真正可行的解决方案吗?是的,你明白我的意思:)。但是我需要在函数中获取所选的值。即使手动调用更改事件,该方法仍然不能用于任何动态生成的dom对象。您所做的内存中更改仍然无法访问。任何人都有真正有效的解决方案吗?此答案不考虑事件
更改
此答案不考虑事件
更改
这将不适用于动态创建的select元素,很遗憾。除非您使用鼠标进行选择,否则不会触发该事件(如果以编程方式创建选项,则不会触发!)。不幸的是,这对于动态创建的select元素不起作用。除非您使用鼠标进行选择,否则不会触发事件(如果以编程方式创建选项,则不会触发!)。
$(".selectAggregate option:selected").val();
$(document).on('change','.selectAggregate', function() {
var temp = $('.selectAggregate').children(":selected").text();
});