javascript - 如何限制 closest() 只遍历一行

标签 javascript jquery html

我有一个表,如果我点击任何一行,它应该返回行“id”号。我使用了 closest() 函数。但问题是 closest() 选择了它下面的所有“tr” .有没有办法限制函数只遍历一行数据。

比如我的 table

  <tr id="0">
       <td>data0</td>
  </tr>
  <tr id="1">
       <td>data1</td>
   </tr>
   <tr id="2">
       <td>data2</td>
   </tr>
   <tr id="3">
       <td>data3</td>
   </tr>
   <tr id="4">
       <td>data4</td>
     </tr>

如果我单击 id=2 的第三行,它应该只返回那个单独的 id 和 td(data2)。 这是我目前正在尝试的代码。

  $("#myTable tr").click(function(){
        trid = $(this).closest('tr').attr('id'); 
        alert(trid);

        return trid;

  });

我试过使用 next() 或 find() 但我最终得到了未定义的错误。谢谢。

最佳答案

我认为你误解了.closest()的概念。它向上遍历到父级,而 .find() 向下遍历到 children/grandchildren

因此,根据您的代码,您似乎想要获得被点击元素的 ID。那么你可以这样做:

trid = this.id;

在您的代码中,this 指的是您正在点击的 tr


注意事项:

刚刚注意到您正在使用名为 trid 的全局 var,因为它没有 var 关键字。因此,如果您不小心使用了它,那么您可以在上面的代码中像这样添加 var trid

关于javascript - 如何限制 closest() 只遍历一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27718327/

相关文章:

javascript - 这种 JavaScript 函数声明方式叫什么? (var) => {}

jquery - 两个具有不同选项的 jQuery UI 日期选择器

javascript - 使用 setTimeout 更改不透明度

html - 相对定位的 child 覆盖父轮廓

javascript - 如何使用 HTML 5 Canvas 和 Javascript 找到图像内的彩色标记?

javascript - 缩放窗口和组件

javascript - 如何从另一个 Controller 或指令触发 Controller 方法?

javascript - 点击切换和替换图像

python - 来自 django 基本模板文件中 url 的变量

html - 如何在 outlook 2010 html 邮件中显示背景颜色?