2012-11-15 136 views
-1

我有两个不同的HTML选择两个占位符,将动态JQUERY:我怎样才能选择一个HTML的价值选择动态创建

var dropdown1 = '#select1'; 
var dropdown2 = '#select2'; 

在稍后的时刻被创建我动态创建元素和附加事件...

$('some div').append(dropdown1); 
$('some div').append(dropdown2); 
$(dropdown1).append('<option>' + value + '</option>'); 
$(dropdown1).append('<option>' + value + '</option>'); 

然后我添加事件侦听器...

$(document.body).on('change', dropdown1, function() { 
alert($(dropdown1).val()); 
alert($(dropdown2).val()); 

}); 

我希望能够得到下拉1和下拉2的值。相反,我得到一个空数组或未定义的数组。

任何人都有任何想法如何我可以得到这些动态创建的选择这两个值?

+0

'$('some div')。append(dropdown1)'显然不是您用来创建select元素的代码,因为dropdown1包含字符串''select1''而不是html元件。还有'$(dropdown1).append(')''的最后部分缺少引号;'。请显示您的_actual_代码,并考虑在http://jsfiddle.net上设置演示。 – nnnnnn

+0

应该是'alert($(dropdown1).val());'? –

+2

这段代码有很多错误;错误的选择器,附加字符串文字(其中意图看起来是元素)...授予它可能是虚拟代码,但请确保它是具体的并且有效,因为问题多于您提出的问题。我建议jsFiddle – nullable

回答

2

你没有持有对jQuery对象的引用,只是一个id的字符串。试试这个:

$(document).on('change', dropdown1, function() { 
    alert($(dropdown1).val()); /* or, you could use $(this).val() */ 
    alert($(dropdown2).val());  
}); 

这只会在您将第一个下拉菜单因选择器参数传递给on()而触发。

相关问题