您好我遇到以下问题我有3个div由ajax动态加载如下:
<div class="item" id="item1"> // Dynamically loaded
<input>
<input>
</div>
<div class="item" id="item2"> // Dynamically loaded
<input>
<input>
</div>
<div class="item" id="item3"> // Dynamically loaded
<input>
<input>
</div>
$(document).on('change', '.item', function() {
});
我想要实现的是当我对三个div之一的输入进行更改时,我想知道输入的位置。因为元素是动态加载的,所以我不能使用直接选择器,但我必须使用$(document).on
,因为我没有使用直接选择器,所以我无法使用(this)
。如何找出已进行的项目更改?
提前致谢!
答案 0 :(得分:1)
处理程序的第一个参数 - 例如e
- 如果声明它将接收该事件。然后e
参数具有target
属性,该属性为您提供事件源自的HTML元素。因此,这将为您提供对已更改的input
:
$(document).on('change', '.item', function(e) {
var targetInput = e.target;
var parent = $(targetInput).closest("div.item");
// Do something ...
});
答案 1 :(得分:0)
根据你的HTML,每个div都有不同的id,因此你可以在改变输入时获得div Id。请测试这段代码并进行测试。
$("input").on('keyup', function(){
//Get the parent div id,
var changeDivID = $(this).parents('div').attr("id");
alert(changeDivID);
});