如何从jQuery中的同一行中选择不同的单元格?

Posted

技术标签:

【中文标题】如何从jQuery中的同一行中选择不同的单元格?【英文标题】:How to select different cell from the same row in jQuery? 【发布时间】:2013-10-14 10:38:38 【问题描述】:

我有这个 jQuery 选择器:

'table tbody tr td:first-of-type'

如何从 $(this) 为同一行构造一个单元格选择器?我需要检查

 $(document).on('click','table tbody tr td:first-of-type',function()
 
   if ( $('table tbody tr td:nth-child(2)').text() != "" ) // for the same row !!
   //do something
   else
   //do something else
 

额外的问题:我应该避免使用像 nth-child() 这样的 CSS3 选择器并使用像 eq() 这样的 jquery 选择器吗?

【问题讨论】:

您能发布一些 html 和您想要实现的示例吗?您的问题并不完全清楚。 您在选择器中忘记了一些',是拼写错误吗?应该是if( $('table tbody tr td:nth-child(2)').text() != "" ) @Sergio 是的,只是错字 【参考方案1】:

只要找到最近的tr

$(this).closest("tr")

要选择td,请使用链接到该.find()

$(this).closest("tr").find("td") //and whatever criteria you need

【讨论】:

那你怎么选择你需要的td呢? @GytisŠk -- 已编辑并添加到答案 这是唯一的方法吗?看起来效率不高(一般情况下) 如果您需要访问多个单元格,建议将“最近”的结果分配给变量。然后您可以使用该变量上的 find 来避免重新扫描并再次找到 TR。【参考方案2】:

工作代码:

   <html>
        <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript">
        $(document).ready(function(e) 
        if ($('table tbody tr td:nth-child(2)').text() != "" ) // for the same row
       //do something
        // alert($('table tbody tr td:nth-child(2)').text());
        else
       //do something else
       //alert("test");
        

           );
        </script>

        </head>
        <body>
        <table>
        <tbody>
            <tr>
                <td>itemOne</td>
                <td>itemOneInfo</td>
                <td>Info</td>
            </tr>
            </tbody>
        </table>
        </body>
        </html>

【讨论】:

以上是关于如何从jQuery中的同一行中选择不同的单元格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ag-grid Angular中获取其他列单元格但同一行的值?

如何使用 CSS 为 jQuery 表中的每一行设置不同的图像

使用 Javascript/jquery 如何从选定行中的每个单元格获取值

jquery 如何把table中的一行变成可编辑的?

excel如何快速选择第一行到最后一行

如何访问 Angular Material Data-Table 中同一行的不同单元格中的单元格的值?