我需要先前在ajax事件上创建的span的id(以及其他属性,例如value)。 有没有办法做到这一点?
这是在php帖子上创建范围的方式:
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”)返回undefined ...我也试过$(this).attr(“value”)但是相同结果。 $(this).val返回空。
答案 0 :(得分:0)
使用
$(document).on('click','.chb',function(){
var id = $(".non-skin-symptom-choice").attr("id");
})
因为它有一个高级别的事件附件,它可以获取在运行时创建的元素
答案 1 :(得分:0)
您正在使用的click()绑定称为“直接”绑定,它只会将处理程序附加到已存在的元素。它不会受到将来创建的元素的约束。为此,您将使用on()
创建“委托”绑定$(document).on('click','.chb',function(){
var id = $(".non-skin-symptom-choice").attr("id");
})
可能重复:Click event doesn't work on dynamically generated elements
答案 2 :(得分:0)
试试这个
alert($(".non-skin-symptom-choice").attr("id"));
答案 3 :(得分:0)
如果页面加载时你的DOM节点不存在(即在页面加载后通过AJAX将其添加到页面中),如果你尝试更新它或用jQuery方法读取它,jQuery就看不到它。解决此问题的一种方法是设置jQuery函数以引用要定位的节点的父级的类或ID(假设父类在页面加载时加载到页面中),以及节点的类你想要目标。例如:
$(".chb").click(function(){
var id = $(".your-parent-class .non-skin-symptom-choice").attr("id");
}
}