【问题标题】:find immediate tr elements of table element using jquery find()使用 jquery find() 查找表元素的直接 tr 元素
【发布时间】:2010-08-05 07:42:22
【问题描述】:

我正在尝试查找 table 元素中的所有 tr 元素。它本身的表格元素在其行内嵌套了其他表格元素。因此,当我执行以下操作时:

$(tbl).find('tr').hover(...);

...它也会在嵌套的表格元素中提取 tr 元素。我只想要我要查询的表元素的直接 tr 元素。

$(tbl).find('>tr').hover(...); 不适合我!

ps:tbl是表格元素,不是字符串

【问题讨论】:

    标签: javascript jquery jquery-selectors find


    【解决方案1】:

    请阅读完整答案。

    $(tbl).children() 
    

    会给你tbodythead 如果它存在的话。 所以如果你想要立即 tr,你需要试试这个。

    $(tbl).children('tbody').children('tr')

    在获取table 的子代时不要忘记考虑tbody,就像在Firefox 中,直接调用$(tbl).children() 这样的子代会返回tbody 而不是tr,即使它不在您的标记中.复杂但有用。

    快乐编码。

    【讨论】:

    • 我不知道 tbody 的存在,但我想这样:if ($(tbl).children('tbody').size() > 0) { ... } else { ... }
    【解决方案2】:
    $(tbl).children('tr').hover(...);
    

    【讨论】:

      【解决方案3】:

      这应该可行:

      $(tbl).children('tr').hover(...);
      

      形成JQuery docu

      .find() 和 .children() 方法相似,只是后者仅在 DOM 树中向下移动一层。

      【讨论】:

        【解决方案4】:

        不要忘记 - 即使您的标记不包含它们 - 从 DOM 的角度来看,tr 元素嵌套在 tbody 元素中,因此您需要将其包含在选择器中。

        尝试类似...

        $(tbl).find('tbody>tr').hover(...); 
        

        虽然这也可能会找到嵌套表的 tbody,但您可能需要类似...

        $(tbl).children().find('tr').hover(...); 
        

        【讨论】:

          猜你喜欢
          • 2017-08-26
          • 1970-01-01
          • 1970-01-01
          • 2012-03-18
          • 1970-01-01
          • 1970-01-01
          • 2019-01-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多