首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过pup从下一行中选择值?

如何通过pup从下一行中选择值?
EN

Stack Overflow用户
提问于 2019-03-22 01:07:12
回答 1查看 362关注 0票数 2

下表如下:

代码语言:javascript
复制
<table>
  <tr>
    <td>Foo</td>
    <td>Bar</td>
    <td>Buzz</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
</table>

假设我不知道值的固定位置,我希望通过给出第一行列的名称来选择第2行,例如:

  • Foo => 1
  • 酒吧=> 2
  • Buzz => 3

目前,我知道如何获取列的名称(第1行):

代码语言:javascript
复制
$ pup -f table.html 'td:contains("Foo") text{}'
Foo

我知道如何通过以下方式返回下一列:

代码语言:javascript
复制
$ pup -f table.html 'td:contains("Foo") + td text{}'
Bar

我希望下一排能通过:

代码语言:javascript
复制
$ pup -f table.html 'td:contains("Foo") + tr text{}'

但是它没有返回任何东西(我希望是1)。

这里是基于jQuery的解决方案,但我希望解决方案可以使用pup命令。

我检查过Mozilla的CSS选择器docs页面,但找不到合适的东西。

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 05:11:28

你的选择器

代码语言:javascript
复制
td:contains("Foo") + tr text{}

表示直接跟随trtd文本,作为同级。根据表结构,trs不是tds的兄弟姐妹--它们是它们的父母。

pup具有自己的:parent-of()伪类,列出了这里,但这不足以满足您的需要,因为您无法在与您所拥有的列相同的列中选择下一行的td。选择器4的列组合器||完全符合您的要求,但是它没有在任何地方实现,当然也不是在pup中实现的。使用任何主要使用CSS选择器的命令行工具来完成这一任务并不容易。

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

https://stackoverflow.com/questions/55291459

复制
相关文章

相似问题

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