jquery动态添加元素事件绑定与获取
关于为动态添加的元素添加绑定事件网上有很多的文章,介绍的很详细,下面是主要代码:
html:
<div id="i_fileusers">
<table id="table_limit" ></table>
</div>
动态添加:
$.ajax({
url:"/sysManage/getFileLimits",
type:"GET",
dataType:"JSON",
data:{
"filename":url
},
async:true,
success:function(datas){
datas = eval(datas);
var filelimits="";
filelimits+='<tr><th>文件/文件夹</th><th>用户</th><th>权限</th></tr>';
for(var s=0; s<datas.length; s++){
var filepath = datas[s].filepath;
var username = datas[s].username;
var permission = datas[s].permission;
filelimits+='<tr class="table_limit_tr"><td>'+filepath+'</td>';
filelimits+='<td>'+username+'</td>';
filelimits+='<td>'+permission+'</td></tr>';
}
$("#table_limit").html(filelimits);
}
});
jquery绑定方法:
$("#table_limit").on("click","td",function(){
$(this).parent().siblings().css("background-color","#FFF");
$(this).parent().css("background-color","#ACD6FF");
});
这是为添加的表添加点击选中行的例子。
当对动态添加的元素绑定事件时,需要通过其某个在静态页面中存在的祖先元素筛选出来。
再说一下获取动态的添加元素,由上面的绑定原理可知,通过静态元素筛选可以绑定方法,所以获取动态元素也可通过静态元素
来获取,例如:
for(var i=1; i<$("#table_limit tr").length; i++){
alert($("#table_limit tr").eq(i).children().eq(1).text());
}
以上可知:若要对动态添加的元素进行操作,都可通过其静态存在的祖先元素来进行操作。