0

当在 for 循环中单击按钮时,我正在设置下拉值和 html,如下所示(有效):

 mySelect.append($('<option></option>').val(result[i].id).html(result[i].add));

但是在我的下拉列表的更改事件中,我没有得到任何值,而 html 返回一个长字符串,这是更改事件:

 $('#ddlHD').change(function () {
                //var item = $('#ddlHD').val();
                // var item = $(this);
                var item = this.value;
                alert(item)
            });
4

3 回答 3

1

如果您的事件处理程序是在选择在 DOM 之前添加的,那么您需要这样做:

$(document).on('change', '#ddlHD', function () {
     var item = this.value;
     alert(item)
});

只有在分配处理程序时选择在 DOM 中可用时,您当前的事件处理程序代码才能工作。

于 2013-06-11T09:27:59.157 回答
0

试试这个。

       $('#ddlHD').on("change",function () {
            //var item = $('#ddlHD').val();
            // var item = $(this);
            var item = this.value;
            alert(item)
        });

如果您在 DOM 加载之后动态添加项目,那么您需要在on事件中获取该项目。

希望对你有帮助

于 2013-06-11T09:19:44.863 回答
0

尝试使用:

新的 jQuery 版本(1.9+):

$('#ddlHD').on("change", function () {
     //var item = $('#ddlHD').val();
     // var item = $(this);
     var item = this.value;
     alert(item)
});

旧的 jQuery 版本(低于 1.9):

$('#ddlHD').live("change", function () {
     //var item = $('#ddlHD').val();
     // var item = $(this);
     var item = this.value;
     alert(item)
});
于 2013-06-11T09:21:19.543 回答