循环动态生成的table,每行有个按钮,其id是用增量的,怎么调用jQuery的click()呢
生成table的代码,arr传入的:<tableborder="1"><tr><th>id</th><th>num</th><th>op</th></tr><%for(v...
生成table的代码,arr传入的:
<table border="1">
<tr>
<th>id</th>
<th>num</th>
<th>op</th>
</tr>
<% for(var i = 0; i < arr.length; i++){ %>
<tr>
<td><%= arr[0].id %></td>
<td><%= arr[0].id %></td>
<td><input type="button" id="delbtn<%= i %>" value="删除"></td>
</tr>
<%}%>
</table>
效果如下:
问题:
希望点击删除按钮触发jQuery的click()来进行数据删除,$(selector).click();
但每个删除按钮都是循环生成的,当有操作点击的时候,我不能确定被点击按钮的id呀;
还有,这个click()应该复用的,有什么法子可以实现我的想法呢?
回答都是不靠谱不能行的,这个问题困扰了好几天,刚刚突然查找到别人的解决办法:
用:$(".del").on("click",function(){......});
".del"是我在删除按钮里加的class,这样点击各个删除按钮,触发的就是各自的click()了。
见有人说用live()【可以查文档】,但我用着没作用,在另个相同问题的回答里找到了答案:
http://zhidao.baidu.com/question/438059298.html?qbl=relate_question_3
这里采纳的答案是不能行的,提问者在后来给出了方法,请看到该页最下端的回答。 展开
<table border="1">
<tr>
<th>id</th>
<th>num</th>
<th>op</th>
</tr>
<% for(var i = 0; i < arr.length; i++){ %>
<tr>
<td><%= arr[0].id %></td>
<td><%= arr[0].id %></td>
<td><input type="button" id="delbtn<%= i %>" value="删除"></td>
</tr>
<%}%>
</table>
效果如下:
问题:
希望点击删除按钮触发jQuery的click()来进行数据删除,$(selector).click();
但每个删除按钮都是循环生成的,当有操作点击的时候,我不能确定被点击按钮的id呀;
还有,这个click()应该复用的,有什么法子可以实现我的想法呢?
回答都是不靠谱不能行的,这个问题困扰了好几天,刚刚突然查找到别人的解决办法:
用:$(".del").on("click",function(){......});
".del"是我在删除按钮里加的class,这样点击各个删除按钮,触发的就是各自的click()了。
见有人说用live()【可以查文档】,但我用着没作用,在另个相同问题的回答里找到了答案:
http://zhidao.baidu.com/question/438059298.html?qbl=relate_question_3
这里采纳的答案是不能行的,提问者在后来给出了方法,请看到该页最下端的回答。 展开
展开全部
// 按照你生成的 input 的 id ,可以如下绑定方法
<script type="text/javascript">
// 页面加载完的时候执行
$(function(){
// 找到 input 中 id 以 delbtn 开头的控件,绑定 click 事件
$("input[id^='delbtn']").click(function(){
// 每个按钮执行该方法
// 按钮的父节点 td 的父节点 tr .remove() 删除掉
$(this).parent().parent().remove();
})
})
</script>
// 当然,你也可以为你的 <input> 添加一个 onclick 事件
// 你在循环中写 <td><input type="button" id="delbtn<%= i %>" value="删除" onclick="deleterow(this)" /></td>
// 然后添加 js 方法
<script type="text/javascript">
function deleterow(input){
// 找到 input 的父节点 td 的父节点 tr
var row = input.parentNode.parentNode;
// 找到 tr 的父节点 tbody,删除(js的删除节点要用 removeChild(node))
// 从 tbody 中删除掉 row 那一行
row.parentNode.removeChild(row);
// 如果你要用 jquery 也可以,如下
// 先把 input 变成 jquery 对象,找到父节点 td 的父节点 tr .remove()
// 就会删除掉该行了
// $(input).parent().parent().remove();
}
</script>
展开全部
其实可以这样。你给给每个删除一个data,
<input type="button" id="delbtn<%= i %>" value="删除" class="delbtn" data="<%=i%>">
$(".delbtn").click(function(){
//do something
var data=$(this).attr("data");
window.location.href="del.jsp?id="+data;
});
<input type="button" id="delbtn<%= i %>" value="删除" class="delbtn" data="<%=i%>">
$(".delbtn").click(function(){
//do something
var data=$(this).attr("data");
window.location.href="del.jsp?id="+data;
});
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单的
$(function(){
$("input[type='button']").click(function(){
var id = this.id;
switch(id){
case "delbtn0":
//根据不同的id做不同的事情,比如删除等等
break;
.....
}
});
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是用的JSP还是JavaScript?
如果是JSP,怎么循环里还有var呢?
-----------------------------------------------
<% for(var i = 0; i < arr.length; i++){ %>
<tr>
<td><%= arr[0].id %></td>
<td><%= arr[0].id %></td>
<td><input type="button" id="delbtn<%= i %>" onclick="del(this)" value="删除"></td>
</tr>
<%}%>
<script type="text/javascript">
var del = function(o){
o.parentNode.parentNode.remove();
}
</script>
//亲测可用,你看还有啥要问的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询