.data()JQuery返回undefined

时间:2015-06-23 17:06:03

标签: javascript jquery ajax

我正在使用我的第一个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,任何人都可以帮助我吗?谢谢..!

1 个答案:

答案 0 :(得分:4)

“更改”处理程序中this的值将是<select>元素,而不是它设置的<option>。您可以通过select元素的selectedIndex属性或jQuery找到option元素。

没有理由设置“data-id”属性;只需通过.data()设置值。