[英]get id and value dynamically created element jquery
我需要先前在ajax事件上创建的范围的id(以及其他属性,例如value)。 有没有办法做到这一点?
这是在php post上创建跨度的方法:
echo "<span class='non-skin-symptom-choice disease_option' ".
"onclick='showinfo(".$var[0].");' id=".$var[0].">"
.$var[1]." -- ".number_format($var[3]*100, 2, '.', '')."%</span>";
并且我想在单击复选框时获取其ID。
$(".chb").click(function(){
var id= $(this).attr('id');
var list=[];
$('.disease_option').each(function (){
alert("this.val=="+ $(this).attr("val")); //i need the value here
var str= $(this).attr("value").split(" -- ")[1];
alert(str);
str=str.slice(0,str.length - 1);
if(parseFloat(str) >=support)
list.push(id) //i need the id here
});
该复选框不是动态创建的,因此$(“。chb”)。click(function(){})有效。
不知何故,$(this).attr(“ id”)可以工作,但是$(this).attr(“ val”)返回未定义...我也尝试过$(this).attr(“ value”)但结果相同。 $(this).val返回空。
采用
$(document).on('click','.chb',function(){
var id = $(".non-skin-symptom-choice").attr("id");
})
因为它具有高级事件附件,它可以获取在运行时创建的元素
尝试这个
alert($(".non-skin-symptom-choice").attr("id"));
您正在使用的click()绑定称为“直接”绑定,它将仅将处理程序附加到已经存在的元素上。 它不会绑定到将来创建的元素。 为此,您将使用on()创建“委托”绑定
$(document).on('click','.chb',function(){
var id = $(".non-skin-symptom-choice").attr("id");
})
可能重复: Click事件不适用于动态生成的元素
如果页面加载时您的DOM节点不存在(即,在页面加载后通过AJAX将其添加到页面中),则如果您尝试更新它或使用jQuery方法读取它,jQuery将无法看到它。 解决此问题的一种方法是设置jQuery函数以引用要定位的节点的父级的类或ID(假设父类在页面加载时加载到页面中)您想要定位。 例如:
$(".chb").click(function(){
var id = $(".your-parent-class .non-skin-symptom-choice").attr("id");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.