首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery仅选择主表中的tr/td,而不选择嵌套表。

jQuery仅选择主表中的tr/td,而不选择嵌套表。
EN

Stack Overflow用户
提问于 2010-03-05 00:32:03
回答 3查看 28.9K关注 0票数 16

我当前有一个表,其中有一个嵌套表:

代码语言:javascript
复制
   <table class="datagrid" id="report">
       <thead>
         <tr>
          <th>item1</th>
          <th>item2</th>
         </tr>
       </thead>
       <tbody>
       <tr class="odd"> <-- on click from this level only 
        <td></td>  
        <td></td>
       </tr>
       <tr>
        <td colspan="2">
         <table>
          <tr class="odd"> <-- not to be fired here
           <td></td> 

etc表结构。

我目前使用的是下面的jQuery,它在每个tr上触发,而不管表的级别是什么。如何将其更改为仅在第一层触发?

代码语言:javascript
复制
 $(document).ready(function(){
            $("#report tr:not(.odd)").hide();
            $("#report tr:first-child").show();

            $("#report tr.odd").click(function(){
                $(this).next("#report tr").fadeToggle(600);
            });
        });
EN

回答 3

Stack Overflow用户

发布于 2013-07-02 06:58:58

在这个解决方案中,是否有tbody标签并不重要:

代码语言:javascript
复制
$('table').find('tr:first').parent().children()
票数 11
EN

Stack Overflow用户

发布于 2010-03-05 00:35:23

使用>选择器只针对元素的直接子元素。您还必须将表中的隐式tbody元素作为目标:

代码语言:javascript
复制
$('#report>tbody>tr.odd')
票数 3
EN

Stack Overflow用户

发布于 2010-03-05 00:33:32

你想要的

代码语言:javascript
复制
$("#report>tr")

>指的是直接后代(子代),而不是任何后代。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2380917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档