【问题标题】:CSS selector for innermost TABLEs?最内层表的 CSS 选择器?
【发布时间】:2011-01-24 00:31:00
【问题描述】:

有没有办法只选择最里面的表?那是那些里面不再包含任何表格的表格吗?

我知道我可以通过element.getElementsByTagName("table").length == 0 过滤,我只是想知道是否有更优雅的解决方案。

【问题讨论】:

    标签: javascript jquery css jquery-selectors


    【解决方案1】:

    使用纯 CSS,您无法做到这一点。使用 jQuery(您的问题被标记),您可以:

    $("table:not(:has(table))")...
    

    将选择没有子表的表。

    :has() 选择器查找具有特定后代的元素。 :not() 将选择反转为那些没有特定后代的选择。

    【讨论】:

      【解决方案2】:

      对于那些在nokogiri 中使用 CSS 选择器的人,:has() 可能会损坏,因此:not(:has(...)) 将不起作用。您需要使用xpath 或其他方式。见:has CSS pseudo class in Nokogiri

      【讨论】:

        【解决方案3】:

        据我所知,没有适合您需要的 CSS 选择器。但是,有几种选择:

        1. 使用类或 id 来标记表格,以便您可以选择它。
        2. 使用 javascript 导航 DOM 树。
        3. 使用 javascript 库来选择元素。当您使用 jQuery 标签标记您的 OP 时,我建议您这样做。

        【讨论】:

          【解决方案4】:

          您有机会向表格添加class="innermost" 属性吗?这样一来,就更简单了。

          【讨论】:

          • 我无法完全控制那个 HTML,所以我首先必须通过 JS 找到所有最内层的表,然后在它们上找到 .addClass('innermost') ......但是一旦我'找到了所有最里面的表,反正我已经完成了。
          猜你喜欢
          • 2014-09-19
          • 1970-01-01
          • 2016-11-30
          • 2013-04-07
          • 2013-03-20
          • 1970-01-01
          • 1970-01-01
          • 2016-04-17
          • 2015-10-31
          相关资源
          最近更新 更多