您可以获取innerHTML
of thebody
并对其进行替换,完成后将新文本写回。
DEMO - 1 - 使用 JavaScript 替换 HTML
尽管代码有效,但替换 HTML 可能会产生后果。如果您有任何事件绑定到其中的任何元素,body
它们现在将被解除绑定,因为您已经替换了 HTML。
如果可能的话,如果您对它有任何影响,我不会将其<!--nextpage-->
用作占位符,但可能是一个空元素,您可以使用选择器作为目标,<div class="nextpage-placeholder"></div>
例如。
这样,您可以仅定位和替换特定元素,而不影响其余代码。
DEMO - 2 - 使用 jQuery 替换元素
另一种方法是可能只是将类分配给实际p
标签,然后简单地使用 jQueryafter
添加锚点。
DEMO - 3 - 使用 jQuery 添加新的锚点
来自演示的代码以防小提琴死了
演示 - 1
<p>some content</p><!--nextpage-->
<p>some more content</p><!--nextpage-->
var text = document.body.innerHTML;
var targetText = "<!--nextpage-->";
var index = 1;
while(text.indexOf(targetText) > -1){
text = text.replace(targetText, '<a id="anchor' + index + '"></a>');
index++;
}
document.body.innerHTML = text;
演示 - 2
<p>some content</p><div class="nextpage-placeholder"></div>
<p>some more content</p><div class="nextpage-placeholder"></div>
var $elements = $(".nextpage-placeholder");
$elements.each(function(index){
$(this).replaceWith('<a id="anchor' + (index+1) + '"></a>')
});
演示 - 3
<p class="nextpage-placeholder">some content</p>
<p class="nextpage-placeholder">some more content</p>
var $elements = $(".nextpage-placeholder");
$elements.each(function(index){
$(this).after('<a id="anchor' + (index+1) + '"></a>')
});