gpt4 book ai didi

javascript - 获取两个元素之间的所有html

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:18 25 4
gpt4 key购买 nike

问题:
提取两个标题之间的所有 html,包括标题 html。 header 文本是已知的,但格式、标签名称等未知。它们不在同一个父级中,并且可能(好吧,几乎可以肯定)在它自己的子级中有子级)。

澄清一下: header 可以在 <h1> 中或 <div>或任何其他标签。它们也可能被 <b> 包围, <i> , <font>或更多<div>标签。关键是:元素中唯一的文本是标题文本。

我可用的工具是:使用 WebBrowser 控件的 C# 3.0,或 Jquery/Js。

我采用了 Jquery 路线,遍历 DOM,但遇到了子项问题并适本地添加了它们。这是到目前为止的代码:

function getAllBetween(firstEl,lastEl) {
var collection = new Array(); // Collection of Elements
var fefound =false;
$('body').find('*').each(function(){
var curEl = $(this);
if($(curEl).text() == firstEl)
fefound=true;
if($(curEl).text() == lastEl)
return false;

// need something to add children children
// otherwise we get <table></table><tbody></tbody><tr></tr> etc
if (fefound)
collection.push(curEl);
});
var div = document.createElement("DIV");
for (var i=0,len=collection.length;i<len;i++){
$(div).append(collection[i]);
}
return($(div).html());
}

我应该继续走这条路吗?使用某种递归函数检查/处理子项,还是一种全新的方法更适合?

为了测试,这里有一些示例标记:

<body>
<div>
<div>Start</div>
<table><tbody><tr><td>Oops</td></tr></tbody></table>
</div>
<div>
<div>End</div>
</div>
</body>

非常感谢任何建议或想法!

最佳答案

我的想法是一个正则表达式,类似于

.*<(?<tag>.+)>Start</\1>(?<found_data>.+)<\1>End</\1>.*

应该让你得到开始和结束 div 标签之间的所有内容。

关于javascript - 获取两个元素之间的所有html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3898858/

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