gpt4 book ai didi

javascript - 在 jQuery 或 JavaScript 中获取两个字符串之间的文本

转载 作者:行者123 更新时间:2023-11-30 05:41:33 25 4
gpt4 key购买 nike

我正在尝试获取 2 个字符串之间的内容并对它们进行操作。例如here你可以看到有两个 $toc 变量。我想获取这两者之间的内容,并以此为基础制作一个目录。如果您看到 fiddle链接你会看到它采用所有 h1、h2、h3、h4 标签并通过替换第一个 $toc 来制作目录,但我不想要该目录中的所有 H 标签.我只想要这两个 $toc 字符串之间的 H 标签。我该怎么做?

我尝试过的

function createTOC(elements) {

var tocString = '';

for (var i = 0, len = elements.length; i < len; i++) {
tocString += elements[i].outerHTML;
}
var $body = $('body');
var html = $body.html();
var newHtml = html.replace('$toc', tocString);
$body.html(newHtml);
}
var $tocElements = $('h1, h2, h3, h4');
createTOC($tocElements);

最佳答案

1) 找到包含文本 $toc

的元素
var listOfTocs = $('p:contains("$toc")');

2) 现在使用 nextUtil() 获取那些 p 标签之间的所有内容。

var foul = $(listOfTocs[0]).nextUntil(listOfTocs[1]);

3) 现在用 elements (h1, h2, h3, h4) 过滤那些元素

var goal = foul.filter(elements);

4) 要查看其值,只需迭代

$.each(goal, function (i, v) {
console.log($(v).text());
});

最后,

function createTOC(elements) {
var listOfTocs = $('p:contains("$toc")');
var foul = $(listOfTocs[0]).nextUntil(listOfTocs[1]);
var goal1 = foul.filter(elements);
$.each(goal1, function (i, v) {
console.log($(v).text());
});

var goal2 = $(listOfTocs[1]).nextUntil($("body").last()).filter(elements);
$.each(goal2, function (i, v) {
console.log($(v).text());
});
}

返回

Werkwijze
Heading 2
Heading 3
Heading 4
Kwaliteitsregistraties


Goal
Council of members
MGMT
IT
Scope
Environment
Quality
Wellness

现在你可以用它做其他事情了。

希望你明白。

关于javascript - 在 jQuery 或 JavaScript 中获取两个字符串之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20538793/

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