我正在使用我的第一个webapp,我使用ajax解析对象将动态内容添加到一个特定的.html ...同时这样做,我发现在选择下拉列表中为每个选项添加data- *属性时出现问题。 。当JQuery的更改函数执行时,它返回undefined。
这是我的ajax函数,(我知道它不是最好的方法)。
ajaxPost("link/x.php",{},function(result){
var json=JSON.parse(result);
var resultado=json.response;
if(json.error==0){
var estadosString='<option value=""></option>';
var cont=0;
for(estado in resultado){
estadosString+=('<option value="'+resultado[estado].nombre+'">'+resultado[estado].nombre+'</option>');
}
$('#estados').html(estadosString);
cont=0;
$('#estados option').each(function(){
$(this).attr('data-id',cont);
$(this).data('id',cont++);
});
}else{
alert("No hay estados");
}
});
将data-id属性添加到每个选项中,当我使用此代码在change select选项上获取data-id时,问题就开始了。
$('#estados').on('change',function(){
alert($(this).data("id"));
});
它总是返回undefined,任何人都可以帮助我吗?谢谢..!
答案 0 :(得分:4)
“更改”处理程序中this
的值将是<select>
元素,而不是它设置的<option>
。您可以通过select元素的selectedIndex
属性或jQuery找到option元素。
没有理由设置“data-id”属性;只需通过.data()
设置值。