【问题标题】:jQuery - Pulling cell data from a tablejQuery - 从表格中提取单元格数据
【发布时间】:2011-08-28 13:21:11
【问题描述】:

当用户单击表格行末尾的按钮时,我需要一些帮助从表格中提取单元格数据。该表是通过 Ajax 技术生成的。我不确定这在访问表格元素时是否会有所不同。

<script type='text/javascript' src='jquery.js'></script> 
  <p>** click me **</p>
  <br/>
  <div id="placeHolder">some text goes here!</p>
<script>
    $("p").click(function () { 

        $.ajax({
          url: "status_2.html",       
          cache: false,
          success: fnSuccess
          }
        );
    });

   function fnSuccess(msg)
    {
        $('div#placeHolder').html(msg);
    }

function selectEditActivity(pass_id){   
    var row = $('#'+pass_id); 
    var seq = row.attr('seq');      
    // here I would like to pull the value of the date from the selected row
    // but I just can't get syntax right.  I get a null value on alert
    var from_date   = $('td', row).eq(0).html();  
    alert(from_date);
}
</script>

这是读取的 html 代码(文件:status_2.html)

  <span id="status2"> 
  <span id="response" class="response"></span>

  <table class="tableBorder">
  <tr >
   <th class="align_left">Date</th>
  </tr><tr>

  <tr seq="1" class="row_theme2" id="id3014201105191"></tr>
    <tr><td>20090519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>
   <td><a onclick="selectEditActivity('id3014201105191');" href="#">EDIT</a></td>
 </tr>

  <tr seq="2" class="row_theme2" id="id3014201105192"></tr>
    <tr><td>20100519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>   
   <td><a onclick="selectEditActivity('id3014201105192');" href="#">EDIT</a></td>
 </tr>

  <tr seq="3" class="row_theme2" id="id3014201105193"></tr>
    <tr><td>20110519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>   
   <td><a onclick="selectEditActivity('id3014201105193');" href="#">EDIT</a></td>
 </tr>
</tbody></table>

【问题讨论】:

    标签: jquery html-table row cell


    【解决方案1】:

    改变这个:

    var from_date = $('td', row).eq(0).html();  
    

    到这里:

    var from_date = row.next().children('td').eq(0).html();
    

    ...因为您要查找的信息位于具有 ID 的信息的下一行。具有 ID 的行没有 &lt;td&gt; 元素。

    现场示例: http://jsfiddle.net/kkP56/


    编辑:您可以摆脱内联的 onclick 处理程序,并让 jQuery 分配您想要的处理程序。

    $(function() {
    
        $('table tr a').click(function() {
            var from_date = $(this).parent().prevAll().last().html();
            alert( from_date );
        });
    
    });
    

    【讨论】:

    • 太棒了!我总是对这种类型的例子有问题。有没有更好的方式来表达这个解决方案?
    • @bob 是你的兄弟:你问是否有更好的方法来实现这一点?如果是这样,您可能需要考虑让 jQuery 处理您的事件处理程序。您可以摆脱内联的 onclick 处理程序,而只需从被单击的那个遍历 DOM。我会更新的,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2011-10-23
    • 2013-01-10
    • 2011-10-19
    • 2020-03-25
    相关资源
    最近更新 更多