我在网站上有这样的html
结构,我在Tampermonkey上编写了一个脚本(js
),需要返回表格这是"在途中去" 但是那些在"在回来的路上" 所以我不在我知道如何以聪明的方式实现这一目标
我要展示的代码,因为我对此有所了解,也许有一些jquery选择器可以帮助我,但我不知道所有,并且无法找到文档
它只由2 <h4>
组成,然后它可以在0和x表之间,除了顶部的跨度之外不存在id
,并且表之间没有区别标志
<span id="idid">
<h4 class="spacer">On way go :</h4>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- need this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- need this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<h4 class="spacer">On way back</h4>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- not this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- not this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
</span>
&#13;
提示:不是我的网站,不能控制结构,我必须使用
答案 0 :(得分:1)
您可以使用document.evaluate
,使用xpath
搜索文本以获取范围,然后使用nextElementSibling
获取表格:
let e = document.evaluate("//h4[contains(., 'On way go')]", document, null, XPathResult.ANY_TYPE, null);
let first = e.iterateNext();
let el = first.nextElementSibling;
while (el.tagName.toUpperCase() === 'TABLE') {
console.log(el);
el = el.nextElementSibling;
}
<span id="idid">
<h4 class="spacer">On way go :</h4>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- need this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- need this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<h4 class="spacer">On way back</h4>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- not this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
<table class="traders" cellpadding="1" cellspacing="1"> <!-- not this -->
<thead><!-- --></thead>
<tbody><!-- --></tbody>
</table>
</span>
如果您知道文本正好是On way go :
,那么您也可以使用"//h4[text()='On way go :']"
作为xpath表达式。