首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过jQuery函数只获取直接子元素

如何通过jQuery函数只获取直接子元素
EN

Stack Overflow用户
提问于 2010-09-11 03:19:21
回答 5查看 83.3K关注 0票数 97

我有一个这样的表结构:

代码语言:javascript
复制
<table1>
  <tbody>
    <tr>
      <td></td>
        ...
      <td>
        <table2>
          <tbody>
            <tr>
              <td></td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
   </tbody>
  </table>

在javascript中,我有一个值为$(table1)的变量tbl,然后我希望获得table1<tbody>的所有直接子元素(tr)。我的代码是:

代码语言:javascript
复制
$('tr', tb1)

显然,它返回table1和table2中的所有<tr>元素。我想我能过得去。

代码语言:javascript
复制
$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})

或者这种逻辑。

我知道$('table1 > tbody > tr')可以获得直接的子tr。不幸的是,我不能使用这个。

有人对此有好的想法吗?

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-11 03:23:27

您可以使用find()

tbl.find("> tbody > tr")

票数 190
EN

Stack Overflow用户

发布于 2015-06-23 05:36:46

正如@jave.web在评论中提到的那样

要搜索元素的直接子元素,请使用.children()。它将只搜索直接的子级,而不会遍历更深的部分。http://api.jquery.com/children/

票数 26
EN

Stack Overflow用户

发布于 2010-09-11 03:27:59

这就是为什么要小心嵌套表的原因。我真的希望你用它们来做数据,而不是页面布局。

另一个可能会毁了你一天的问题是在嵌套表上使用CSS选择器……基本上也有同样的问题--如果不选择内表中的TR元素,就无法选择外层表中的TR元素。(不能使用子选择器,因为它不是在IE6中实现的)

这应该是可行的:

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

但是,我建议您硬编码TBODY元素,因为您不应该依赖浏览器为您创建它。

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

https://stackoverflow.com/questions/3687637

复制
相关文章

相似问题

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