无法找到使用动态创建的项目获得用户输入的项目

时间:2016-06-03 13:54:20

标签: javascript jquery html

您好我遇到以下问题我有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) 。如何找出已进行的项目更改?

提前致谢!

2 个答案:

答案 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);

});