从每个li

时间:2016-02-17 14:02:32

标签: javascript jquery

如何获取动态id元素的li

<ul id="3" class="test">
    <li id="2">aca2</li>
    <li id="1">aca</li>
  </ul>
$('.test').each(function(){
    $(this).on('click', function(e){
        alert(this.id); //returns 3
    });
});

2 个答案:

答案 0 :(得分:5)

您不需要each(),因为您可以将事件直接绑定到li的所有子.test元素。试试这个:

$('.test li').on('click', function(e) {
    alert(this.id);
});

或者,如果li元素是动态追加的,您可以使用委托的事件处理程序:

$('.test').on('click', 'li', function(e) {
    alert(this.id);
});
  

如果我想在li

中获取输入字段值该怎么办?
$('.test').on('click', 'li', function(e) {
    alert($(this).find('input').val());
});

答案 1 :(得分:1)

您可以使用选择器收听点击事件。通过这种方式,你也可以改变ul的内容(即:添加/删除项目),而不会影响他的行为。

$('.test').on('click', 'li', function(event){
    alert($(event.target).attr('id'));
});

https://jsfiddle.net/adael/kf03rfg6/1/