我正在写一个Greasemonkey脚本,我想在phpBB2论坛上更改论坛帖子的文本,使用XPath选择在某个用户名之后发布的帖子的主体,但整个事情是巨人一塌糊涂的桌子。
<tr>
<td>
<span class="name">
<a>
<b>username</b>
</span>
<span></span>
</td>
<td>
<table>
<tbody>
<tr></tr>
<tr></tr>
<tr>
<td>
<span class="postbody">text of post</span>
<span></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
我需要获得b标签中的用户名等于某个名称后发生的postbody span,然后弄乱文本。以下是我尝试这样做的方法:
var postguy = document.evaluate('fffffff', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < postguy.snapshotLength; i++) {
thisLink = postguy.snapshotItem(i);
//then do something with the post
}
答案 0 :(得分:3)
我会这样做:
//tr[.//b/text()='username']//span[@class='postbody']
要与评论保持一致,您可以通过限制b
标记的位置来缩小范围:
//tr[.//span[@class='name']//b/text()='username']//span[@class='postbody']
该死的!对于那些@
来说,我太急了。慢慢来,有时会闻到@
。