我试图获取2个字符串之间的内容并对它们进行操作。例如here您可以看到有两个$toc
个变量。我想获得这两者之间的内容,并根据它制作一个内容表。如果您看到fiddle链接,则会看到它通过首先替换$toc
获取所有h1,h2,h3,h4标记并制作内容列表,但我不会&# 39; t想要该内容表中的所有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);
答案 0 :(得分:1)
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
标题2
标题3
标题4
Kwaliteitsregistraties
目标
理事会成员 MGMT
IT
范围
环境
质量
健康
现在你可以用它做其他事情了。
希望你明白。