Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何限制最近()只遍历一行_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何限制最近()只遍历一行

Javascript 如何限制最近()只遍历一行,javascript,jquery,html,Javascript,Jquery,Html,我有一个表,如果我点击其中任何一行,它应该返回行“id”号。我使用了最近的()函数。但问题是最近的()选择它下面的所有“tr”。有没有办法限制函数只遍历一行数据 比如我的桌子 <tr id="0"> <td>data0</td> </tr> <tr id="1"> <td>data1</td> </tr> <tr id="2">

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

比如我的桌子

  <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>

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

通过单击
tr
,您不需要使用
。closest()
来访问其id,只需使用
.attr('id')
.prop('id')
或简单地
.id
来获取其id,如下所示:

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

通过单击
tr
,您无需使用
.nestest()
来访问其id,只需使用
.attr('id')
.prop('id')
或只需使用
.id
即可获取其id,如下所示:

$("#myTable tr").click(function(){
        trid = $(this).attr('id'); 
        alert(trid);    
});
$(文档)。在('click','td',function()上{
var result=$(this.closest('tr').attr('id');
警报(结果);
});

数据0
数据1
数据2
数据3
数据4
$(文档)。在('click','td',function()上{
var result=$(this.closest('tr').attr('id');
警报(结果);
});

数据0
数据1
数据2
数据3
数据4

我想你误解了
.closest()
的概念。它向上遍历父对象,而
.find()
向下遍历子对象/孙子对象

因此,根据您的代码,您似乎希望获得单击元素的id。然后你可以这样做:

trid = this.id;
与您的代码中一样,此
指的是您正在单击的
tr


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

我认为您误解了
.closest()
的概念。它向上遍历父对象,而
.find()
向下遍历子对象/孙子对象

因此,根据您的代码,您似乎希望获得单击元素的id。然后你可以这样做:

trid = this.id;
与您的代码中一样,此
指的是您正在单击的
tr


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

试试这个 试试这个
trid=$(this).closest('tr').attr('id')
更改为
trid=this.id
。Jai有权。。您正在尝试搜索其他
tr
元素的后代
tr
元素,但找不到它并返回
undefined
。我的英语的sry
trid=$(this).closest('tr').attr('id')
更改为
trid=this.id
。Jai有权。。您正在尝试搜索其他
tr
元素的后代
tr
元素,但找不到它并返回
undefined
。sry对于我的英语呼和浩特,我确实尝试了代码,但仍然显示相同的代码。如果我有4行,单击第三行,则id显示正确,但警告在第三行和第四行显示两次。您好,很抱歉,请忽略上述注释。如果通过id更新表,它工作正常。感谢帮助。在jquery中,它也是正确的最好将事件绑定到身体上。因为它也适用于动态元素。例如:---$(“body).on('click','#myTable tr',function(){你好,Hoja,我确实尝试了代码,但结果仍然是一样的。如果我有4行,单击第三行,则id显示正确,但第三行和第四行的警报显示两次。你好,抱歉,请忽略上面的注释。如果通过id更新表,它工作正常。感谢帮助。在jquery中,最好绑定事件。因为它也将在动态元素上工作。例如:---$(“body”).on('click','#myTable tr',function(){