jquery怎样获取动态增加的img标签的id
这是动态增加的img标签,取值用
$("img.headimage").click(function(){
var v = $(this).attr('id');
alert(v);
});
取值的代码没有错的。单写一个img标签就有。用ajax动态增加img时候就不行,源文件看不到增加的img标签,但是网页上已经能够显示了。求这个问题怎么解决 展开
1、新建一个html文件,命名为test.html。
2、在test.html文件中,在p标签内,使用span标签创建一行文字,span标签是p标签的子标签。
3、在test.html文件内,设置span元素的id为myspan,下面将使用jquery方法获得该id值。
4、在test.html文件内,使用button标签创建一个按钮,按钮名称为“获取子标签的ID值”。
5、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行getspanid函数。
6、在js标签中,创建getspanid()函数,在函数内,通过元素名称获得p元素对象,使用children()方法获得p标签的子标签,再通过attr()方法来获得id值。最后,使用alert()方法将id值输出来。
使用 on()方法,本质上使用了事件委派,将事件委派在父元素身上。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品,但是由于on()方法必须有事件,没有事件时可选择delegate();
父元素: .main .left
子元素: li
$("父元素").on("click","子元素",function(){
var index=$(this).index();
$(".main .right").find('li').css({"background":"#F4F4F4","color":"#333"});
$(this).css({"background":"#fff","color":"#46c6ff"});
$(".main .left").find('li').hide();
$(".main .left").find('li').eq(index).show();
});
扩展资料
on()可以获取动态元素,必须有事件;
delegate() 可以获取动态元素,可以没事件;
live() 可以获取动态元素,jQuery 1.9已弃用,必须有事件;
bind() 只能获取静态元素,不能获取动态元素,必须有事件。
用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
如果是~使用live方法绑定事件就行了~
比如:
$("img.headimage").live("click", function(){
var v = $(this).attr('id');
alert(v);
});
希望对您有帮助~
By Billskate
1、动态增加img标签时将事件触发绑定在标签上(事先写好触发方法)
如:
//动态增加标签
$("body").append("<img src='' id='jsoaeig' onclick='imgclick(this);'/>");
//绑定的方法
function imgclick(obj){
//获取标签id
$(obj).attr("id");
}
2、动态增加标签之后遍历标签绑定事件
//增加标签
$("body").append("<img src='' id='jsoaeig' class='img'/>");
//遍历标签
$("body img").each(function(index,obj){
alert($(this).attr("id"));
});