以下代码适用于动态加载选择下拉列表。在文档就绪函数中调用代码以将数据预加载到页面中。代码工作得很好。但是,我对DOM中似乎“未定义”的事实感到困惑。 ie ...change事件等...当我试图选择一个值....
在HTML中,设置简单:
<select id="optionsChaa" name="chaa_id" class="largewidth"></select>
jquery代码如下。有用。随意在您的代码中使用它
var optionsValues = '<select id="optionsChaa" name="chaa_id" class="largewidth">';
optionsValues += '<option value=""></option>';
$.each(result, function() {
optionsValues += '<option value="' + this.chaa_id.val + '">' + this.chaa_name + '</option>';
});
optionsValues += '</select>';
var options = $('#optionsChaa');
options.replaceWith(optionsValues);
$('#optionsChaa').change(function() {
// Alert returns undefined...
alert($(this).val() );
});
那么为什么DOM之后会“未定义”?
答案 0 :(得分:1)
我认为this.chaa_id.val
部分出了问题。在each
中,“this”指的是“current”元素(即results
数组的成员)。
答案 1 :(得分:1)
你能展示result
变量中的内容吗?
我尝试将您的代码设置为result
:
var result = [
{ 'chaa_id' : { 'val' : 1 }, 'chaa_name' : 'name1'},
{ 'chaa_id' : { 'val' : 2 }, 'chaa_name' : 'name2'}
]
alert()
似乎有效。