我有一个带有嵌套表的表,问题是在鼠标事件侦听器中,我想获取最深的行。我发现了this几乎是我想要的,但是我没有足够的经验来使用此示例来解决我的问题。成功的关键是使警报框在下面给出的JSFIddle中显示为“ 2”而不是“ 1”

<table>
  <tbody>
    <tr id='1'><td>A
      <table>
        <tbody>
          <td><tr id='2'>B</tr></td>
        </tbody>
      </table>
      </td>
    </tr>
  </tbody>
</table>


注意:为简单起见,我介绍了两个级别,但想问您考虑一下可能有任何级别的嵌入式结构的一般情况。

更新:请参阅updated JSFiddle更正了NewToJS的注释

最佳答案

使用event.stopPropagation()
另请注意,tdtr的子级,反之亦然



  Event.stopPropagation()防止在捕获和冒泡阶段进一步传播当前事件。




$(function() {
  $(document).on('mouseover', 'tr', function(e) {
    e.stopPropagation();
    console.log(this.id);
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
  <tbody>
    <tr id='1'>
      <td>A
        <table>
          <tbody>
            <tr id='2'>
              <td>B</td>
            </tr>
            <tr id='3'>
              <td>C</td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
  </tbody>
</table>

关于javascript - 获取嵌入式表中最里面的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39936135/

10-16 00:10