如果元素的所有元素都是标记,我怎么才能从元素中获得第一级元素

时间:2017-04-27 16:18:35

标签: html css xpath selenium-webdriver

有没有办法只从元素中获取第一级元素,如果它只有一个标记?我有下面的html,只想从找到的“tr”的第一级得到所有“tr”标签。不是“tr”标签内的那些。

<tbody>
 <tr> // I want this
  <td>
  <td>
   <div>
    <table>
      <colgroup span="9">
        <tbody>
          <tr> // Don't want this
           <td>
 <tr> // I want this
  <td>
  <td>
   <div>
    <table>

3 个答案:

答案 0 :(得分:1)

是的,但首先您需要在所有行上设置所需的样式,然后将嵌套表的行重置为其默认样式。

.table, td { border:1px solid black; }

/* First set the style you want, but set it on all rows. */
tr { background-color:yellow; }

/* Then reset the nested table's rows back to their default style. */
table table tr { background-color:white; }
<table>
 <tbody>
  <tr> 
   <td>test</td>
   <td>test</td>
   <td>
    <table>
      <tr>
        <td>test</td>
      </tr>
      <tr> 
        <td>test</td>
      </tr>
     </table>
   </td>
  </tr>
  <tr>
   <td>test</td>
   <td>test</td>
   <td>test</td>
  </tr>
<table>

答案 1 :(得分:-1)

我建议你使用类来选择元素。

编辑:

还有另一篇帖子有同样的问题。(Apply style to only first level of td tags

使用 .MyClass>tbody>tr>td { border: solid 1px red; }

答案 2 :(得分:-1)

如果你使用jQuery,你可以使用类似的东西来定位它:

$("tbody > tr").html()

这将选择紧跟tr

之后的tbody

要获得下一个,你会想要寻找它的兄弟姐妹。