gpt4 book ai didi

javascript - 在 JS/JQuery 中通过 DOM 获取 BR 分隔的文本?

转载 作者:行者123 更新时间:2023-11-29 10:25:15 26 4
gpt4 key购买 nike

我正在编写一个 greasemonkey 脚本来解析具有以下一般结构的页面:

<table>
<tr><td><center>
<b><a href="show.php?who=IDNumber">(Account Name)</a></b>
(#IDNumber)
<br> (Rank)
<br> (Title)
<p>
<b>Statistics:</b>
<br>
<table>
<tr><td>blah blah etc.
</td></tr></table></center></table>

我特别想从中提取(标题)部分。然而,如您所见,它仅由 <BR> 引起。标签,没有自己的 ID,只是 <CENTER> 的文本的一部分标签,并且该标签有一大堆与之关联的其他文本。

现在我正在做的是获取 Center 标记的 innerHTML 并在其上使用正则表达式来匹配 /<br>([A-Za-z ]*)<p><b>Statistics/ .这对我来说没问题,但感觉必须有更好的方法来从那里挑选特定的文本。

...那么,有没有更好的办法呢?或者我应该向站点程序员提示他需要使该文本更易于访问吗? :-)

最佳答案

编辑:更新以删除空格

var title = $('table center').contents().filter(function() {
if( this.nodeType == 3 && $.trim(this.data) != "") { //get only text nodes and filter out whitespace elements
return true;
}
}).get(2); // get the 3rd text node


alert( title.data ); // alerts "(Title)
title.data = "How to use jQuery"; // (Title) changes

工作原理:

该函数遍历所提供节点中的所有节点,在本例中为中心标记。 Text 是 nodeType 3,所以你会得到一个数组。您的示例的结束中心标记放错了位置,因此这可能会给您带来错误,但我想您明白了。 (我认为你之前错过了一个)

你总是可以:

  $('table center').contents().filter(function() {
if( this.nodeType == 3 && $.trim(this.data) != "") { //get only text nodes and filter out whitespace elements
return true;
}
}).wrap('<p></p>') // make those text nodes paragraphs
.end().filter('br')
.remove(); // remove the brs

参见 jquery docs on .contents()

关于javascript - 在 JS/JQuery 中通过 DOM 获取 BR 分隔的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com