我正在尝试获取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());
});
}
退货
韦克维兹
标题2
标题3
标题4
Kwaliteits注册
目标
理事会成员
MGMT
它
范围
环境
质量
养生
现在,您可以使用它进行其他操作。
希望你能理解。