我用Jquery代码向<tbody>元素中添加行,当单击tbody中的a标签的时候要触发一个单击事件,并获取当前行的索引。
请问如何实现啊。
<table id="tbItem" width="100%">
       <thead>
<tr><th>选择</th><th>拨出方</th><th>PO</th></tr>
</thead>
<tbody>
<tr><a href="#" name="choice" value="详情"/></td><td>拨出方</td><td>PO</td></tr>
<tr><a href="#" name="choice" value="详情"/></td><td>拨出方</td><td>PO</td></tr>
<tr><a href="#" name="choice" value="详情"/></td><td>拨出方</td><td>PO</td></tr>
<tr><a href="#" name="choice" value="详情"/></td><td>拨出方</td><td>PO</td></tr>
</tbody>
</table>

解决方案 »

  1.   


    <BODY>
      
    <table id="myTable">
     <Tr><td>1</td><td>2</td><td><a>3</a></td></tr>
     <Tr><td>11</td><td>22</td><td><a>33</a></td></tr>
     <Tr><td>111</td><td>222</td><td><a>333</a></td></tr>
    </table>
    <script>
     jQuery(document).ready(function(){
      jQuery("#myTable a").each(function(index){
       jQuery(this).bind("click",function(){
        var htmlstr = "";
        index++;
        jQuery("#myTable tr:nth-child("+index+")").children().each(function(){
         htmlstr += jQuery(this).text();
        })
        alert(index);//获取点击行的索引
        alert(htmlstr); // 获取点击行的内容
       });
      });
     });
    </script>
     </BODY>
      

  2.   

    好像还是不行哦。都不知道是什么原因。TBODY里面的行是我用JS事件生成的哦
      

  3.   

    $.("a").click(){
      var id = $("a").index(this);//获得当前那个a的索引,从0开始
      $("tbody").append("<tr>里面的内容自己写吧</tr>");
    }
      

  4.   

    首先,你JS生成的tr貌似就不正确
    <tr><a href="#" name="choice" value="详情"/></td><td>拨出方</td><td>PO</td></tr>
    第一个/td多出来了,而且a标签要有/a结尾的
    应该是这样
    <tr><a href="#" name="choice" value="详情"/><td>拨出方</td></a><td>PO</td></tr>
    你的代码我调试了,是没有问题的,所以你把你JS生成的地方改一下把!
    你也可以运行下面的试一下,是没有问题的<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>改变Input Value值</title>
    <BODY>
      
    <table  width="100%">
      <thead>
    <tr><th>选择</th><th>拨出方</th><th>PO</th></tr>
    </thead>
    <tbody id="tbItem">
    <tr><a href="#" name="choice" value="详情"/><td>拨出方</td></a><td>PO</td></tr>
    <tr><a href="#" name="choice" value="详情"/><td>拨出方</td></a><td>PO</td></tr>
    <tr><a href="#" name="choice" value="详情"/><td>拨出方</td></a><td>PO</td></tr>
    <tr><a href="#" name="choice" value="详情"/><td>拨出方</td></a><td>PO</td></tr>
    </tbody>
    </table>
    <script>
     jQuery(document).ready(function(){
      jQuery("#tbItem tr").each(function(index){
       jQuery(this).bind("click",function(){
        var htmlstr = "";
        index++;
        jQuery("#tbItem tr:nth-child("+index+")").children().each(function(){
         htmlstr += jQuery(this).text();
        })
        alert(index);//获取点击行的索引
        alert(htmlstr); // 获取点击行的内容
       });
      });
     });
    </script>
     </BODY>
    </head>
    </html></body>
    </html>
      

  5.   

    楼主说"用Jquery代码向<tbody>元素中添加行",
    所以应该是动态的,1楼的每个a连接的click事件在初始化的时候就迭代写死了~这样的话我在最上面js动态添加一行,去点第二行~第二行还是以为自己是索引1,既然是动态就应该用live,所有的a都live一个函数,函数内容要有这句:var parentTR=this.parent()然后要取索引就用这句$(parentTR).index($('tr'));综上所述
    一个live()函数一个index()函数就ok
    ~没必要1楼整那么多迭代!
      

  6.   

    var parentTR=this.parent().parent()两次~然后检查标签名字是不是tr 
      

  7.   

    楼上说得对,就是动态添加的行,我检查过元素写法没错的,就是动态生成的a标签单击事件一点反映都没有。我在thead中手动增加一个a标签就可以的