1

我正在编写一个 Greasemonkey 脚本,我想通过使用 XPath 选择在某个用户名之后出现的帖子正文来更改 phpBB2 论坛上的论坛帖子的文本,但整个事情就是一堆乱七八糟的表格.

<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 跨度,然后将文本弄乱。这是我尝试的方法:

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
}
4

1 回答 1

3

我会这样做:

//tr[.//b/text()='username']//span[@class='postbody']

b为了与评论保持一致,您可以通过限制标签的位置来缩小范围:

//tr[.//span[@class='name']//b/text()='username']//span[@class='postbody']

该死的!@我对那些s太着急了。@有时得放慢脚步,闻一闻。

于 2010-05-26T15:54:03.917 回答