2016-11-22 108 views
-1

注意:我不在寻找元素的父项。我正在查找包含其中的其他元素的元素。如何为包含其他元素的元素编写CSS选择器?

我正在使用Rails 4.2.7,我正在使用Nokogiri来解析HTMl文档。我想在我的文档中找到第一行(第一个tr元素)至少有一个th元素的表格。我该如何编写一个CSS选择器?请注意,我只想选择表格,而不是第th个元素本身。这是我希望从文档

<table> 
    <tbody> 
     <tr> 
      <th>Header 1</th> 
     </tr> 
     <tr> 
      <td>Other data</td> 
     </tr> 
     … 
    </tbody> 
</table> 
+0

家长选择不CSS3存在。这是其中的许多文章之一。 https://www.google.ca/amp/s/css-tricks.com/parent-selectors-in-css/amp/?client=ms-android-rogers-ca。你可以尝试jquery,如果这是一个选择类似于这个答案。得到表找到父母。 http://stackoverflow.com/a/3523794/3366016 – user3366016

+0

请阅读“[mcve]”。我们希望看到您尝试的是什么,而不仅仅是您的输入数据样本。 –

+0

可能重复的[是否有一个CSS父母选择器?](http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) –

回答

0

你可以尝试使用Array#select方法过滤器中的所有表,其中第一tr包含th元素中选择该表的一个例子。

例如,假设你有一个Nokogiri对象调用doc

require "nokogiri" 
require "open-uri" 

url = # your url 
doc = Nokogiri::HTML.parse(open(url)) 

tables = doc.css("table").select do |table| 
    # consider only the first row of each table 
    first_row = table.css("tr").first 

    # check if that row's children contains a <th> element 
    first_row.children.map(&:name).include?("th") 
end 
相关问题