我认为对于任何体面的jQuery来说这都是一个非常简单的方法,但是我的页面上有动态生成的下拉列表,我在课堂上设置了一个点击事件,正如预期的那样所有人的点击事件。 select
的ID是动态生成的,因此我不能将其用作选择器。我只想激活实际更改的select
事件。
我需要在函数中使用所选值的id - 任何人都知道这是怎么做的?
我到目前为止的代码:
$(document).ready(function () {
$(".boxItem").change(function () {
var str = $(this).attr('id');
var num = $(this).val();
alert(num);
var url = "/Search/GetBoxChangeInfo";
var vmData = { json : @Html.Raw(Json.Encode(Model)),
id : str,
boxNo : num };
$.post(url, vmData, function (data) {
$("#column-1").html(data);
});
});
});
非常感谢
答案 0 :(得分:2)
如果它是动态的,你需要委派:
$(document).on('change', '.boxItem', function () {
var str = this.id;
var num = this.value;
......
this
将引用已更改的类.boxitem
的select,并且获取ID和值应该按预期工作,也将文档替换为最接近非动态父级的文档!
答案 1 :(得分:1)
$(".boxItem").on("change", function () {
// to get the value and id of selected option
var str = $('option:selected', this).attr('id');
var value = $('option:selected', this).attr('value');
// or to get value and id of select box use
var str = this.id;
var value = this.value;
......
});
如果select
是活的,即在DOM准备好之后创建,那么你应该尝试
$("body").on("change", ".boxItem", function () {
// to get the value and id of selected option
var str = $('option:selected', this).attr('id');
var value = $('option:selected', this).attr('value');
// or to get value and id of select box use
var str = this.id;
var value = this.value;
......
});