如何获取动态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
});
});
答案 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'));
});