0

当单击外部表中的任何标签时,我正在尝试获取<th>嵌套表中标签中的文本。<tr>在底部的 jsfiddle 示例中,您将看到外表处于悬停状态。我有一些工作的脚本,但警报会触发两次。它确实显示了正确的文本,但我的目标可能是错误的,因为警报会触发两次。

html:

<table id="device-table"  width="400" border="0" cellpadding="5" class="table table-hover">
  <tr><!-- if I click anywhere in this row -->
    <td><table width="400" border="0" cellpadding="5">
      <tr>
        <th colspan="4" scope="col">2048 x 1536</th> <!-- I want to grab this text -->
      </tr>
      <tr>
        <td>Apple</td>
        <td>iPad 3</td>
        <td>9.7"</td>
        <td>Tablet</td>
      </tr>
    </table></td>
  </tr>
  <tr><!-- if I click anywhere in this row -->
    <td><table width="400" border="0" cellpadding="5">
      <tr>
        <th colspan="4" scope="col">320 x 240</th> <!-- I want to grab this text -->
      </tr>
      <tr>
        <td>Samsung</td>
        <td>Brightside</td>
        <td>3.1"</td>
        <td>Smartphone</td>
      </tr>
    </table></td>
  </tr>
</table>

脚本:

$('#device-table').find('tr').click( function(){
  var row = $(this).find('th:first').text();
  alert('You clicked ' + row);
 });

这是一个jsfiddle:http: //jsfiddle.net/9ZRpt/

4

1 回答 1

1

确保您只选择第一个表上的行,而不是嵌套表。

$('#device-table>tbody>tr').on("click", function(){
  var row = $(this).find('th:first').text();
  alert('You clicked ' + row);
 });
于 2013-01-19T05:16:12.160 回答