如上图,我想单击删除按钮,获取改行的Id,却不能获得。
代码如下:document.getElementById("btnDelete").parentNode().parentNode().children[0].innerHTML;
按照思维 btnDelete的父节点是<td>,在父节点是<tr>,在第一个子节点应该就是Id啊。
求各位大神指教,不胜感激!(顺便说下 我是用jquery,ajax,ashx实现html数据的交互)

解决方案 »

  1.   

    先获得该行的rowIndex 这个在当初你构造"删除"这个的时候对应的函数中该有的 你懂得
    然后:
    var myId = document.getElementById('table的id').tBodies[0].rows[rowIndex].cells[0].innerHTML
    就可以了
      

  2.   

    楼主表示用jquery,但是如此操作dom,jq表示很无奈。
    jqcode:$('.btnDelete').click(function(){$(this).parents('tr:first').remove()})等等,貌似楼主给所有button相同的id?神啊,千万不要,亲,请用class
      

  3.   

    我想你这个应该是从数据库中获取到的 然后循环遍历得到的结果吗,如果是的话,不用按钮 用一个超链接就可以啊,遍历的时候就把id值作为参数给它不就可以了吗?顺便问一下各位啊,像lz这种表格的内容 如果点击“修改”的时候 能不能实现“使该行的内容呈现在表单里面 ,并且保持着修改前的内容 修改完后 点击确定就完成了,类似于.net的gridview功能或者139邮箱的通信录编辑功能”呢!
      

  4.   


    我是向table中 循环添加的数据和按钮的。
      

  5.   

    <html>
    <head>
    <script src='http://code.jquery.com/jquery-latest.js'></script>
    <script>
    $(function(){
    $('.btnDelete').click(function(){$(this).parents('tr:first').remove()})
    })
    </script>
    </head>
    <body>
    <table>
    <tr><td>111</td><td><button class='btnDelete'>删除</button></td></tr>
    <tr><td>222</td><td><button class='btnDelete'>删除</button></td></tr>
    <tr><td>333</td><td><button class='btnDelete'>删除</button></td></tr>
    </table>
    </body>
    </html>
      

  6.   

    给你个小经验
    我一向在构建表格时,都会在第一列设置一个序号,而这个序号,会加入很多隐藏的span元素,全是与行数据相关的东西,如商品ID,当前用户名,单位ID等等,只要与数据库交互时需要用到的数据都可以放里面
    当然我的表格是有完整的控件,所以取值什么的也很方便,只是给你个参考
      

  7.   

    晕死,和数据库交互不得先把前端的数据传递出去撒,给你的是获取dom的方法,至于你要的id可以进一步查找,再说了光交互数据库前端不用体现结果啊??
      

  8.   

    受不了了,把html贴出来,然后告诉我你要具体实现的功能
      

  9.   

    就是我动态的从数据库中读取数据,填充到table中,单击右侧循环添加的按钮,获取改行的Id的内容(1,2,3这些。)
      

  10.   

    不好意思,我是jquery初学者,以前学的主要用asp.net服务器控件,现在用html页面,都不熟悉。
      

  11.   

    根据你的代码,推测html如下,获取id如下:
    <html>
    <head>
    <script src='http://code.jquery.com/jquery-latest.js'></script>
    <script>
    $(function(){
    $('.btnDelete').click(function(){
    alert($(this).parent('td').siblings(':first-child').text())
    })
    //$('.btnDelete').click(function(){$(this).parents('tr:first').remove()})
    })
    </script>
    </head>
    <body>
    <table>
    <tr><td>111</td><td><button class='btnDelete'>删除</button></td></tr>
    <tr><td>222</td><td><button class='btnDelete'>删除</button></td></tr>
    <tr><td>333</td><td><button class='btnDelete'>删除</button></td></tr>
    </table>
    </body>
    </html>代码不是一定的,完全是根据你的html结构来的
      

  12.   

    现在弹出的id是对的,但是不知道怎么把id接收为我要的参数 例如 var data=“ID=”+我需要的id,
      

  13.   

    var id = $(this).parent('td').siblings(':first-child').text();
    window.location = "(路径)?id=" + id;
    后台文件取出:
    Request.Params["id"]
      

  14.   

    我用的是静态页面,ashx处理的方式,我现在想得到的是 var data="id="+(我想得到的id),然后在ashx中接受id,然后 int id = Convert.ToInt32(context.Request["id"]);UserManager.DeleteUser(id),执行数据库删除。
      

  15.   

    function getID(int index)
    {
         var table=$("#table");
         var id;
         table.find("tr").each(function(i,e){
           if(i=index){
            id=$(e).children("td").eq(0);
           }
         });
    }
      

  16.   

    function findParentTr(elem){
    var parent= elem.parentNode;
    while(parent){
    if(parent.tagName === 'TR'){
    return parent;
    }else{
    parent = parent.parentNode;
    }
    }
    var delbtn = document.getElementById("btnDelete");
    alert(findParentTr(delbtn).innerHTML);
      

  17.   

    function findParentTr(elem){
      var parent= elem.parentNode;
      while(parent){
        if(parent.tagName === 'TR'){
          return parent;
        }else{
          parent = parent.parentNode;
        }
      }
      return null;
    }
    document.getElementById("btnDelete").onclick = function(){
      alert(findParentTr(this).innerHTML);
    }
      

  18.   

    int index 貌似语法有错误。