循环动态生成的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
这里采纳的答案是不能行的,提问者在后来给出了方法,请看到该页最下端的回答。
展开
 我来答
suxueduwang
2014-01-01 · TA获得超过654个赞
知道小有建树答主
回答量:209
采纳率:33%
帮助的人:240万
展开全部
// 按照你生成的 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>
bbb0579
推荐于2018-03-12 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:132万
展开全部
其实可以这样。你给给每个删除一个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;

});
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友022523ba3
2013-12-31 · TA获得超过678个赞
知道小有建树答主
回答量:416
采纳率:100%
帮助的人:253万
展开全部

很简单的

$(function(){
    $("input[type='button']").click(function(){
        var id = this.id;
        switch(id){
            case "delbtn0":
                //根据不同的id做不同的事情,比如删除等等
                break;
                .....
        }
    });
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
法法克
2014-01-01 · 超过21用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:49.7万
展开全部

你这是用的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>
//亲测可用,你看还有啥要问的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式