Javascript 使用迭代计数查找/替换的正则表达式或jQuery
我有一个基于tinymce的文档,需要对其进行查找/替换 文档中的标记将在html中具有特定的Javascript 使用迭代计数查找/替换的正则表达式或jQuery,javascript,jquery,regex,tinymce,Javascript,Jquery,Regex,Tinymce,我有一个基于tinymce的文档,需要对其进行查找/替换 文档中的标记将在html中具有特定的注释标记,如下所示: <p>some content</p><!--nextpage--> <p>some more content</p><!--nextpage--> <p>some content</p><!--nextpage--> <p>some more content&
注释标记,如下所示:
<p>some content</p><!--nextpage-->
<p>some more content</p><!--nextpage-->
<p>some content</p><!--nextpage-->
<p>some more content</p><!--nextpage-->
jQuery可以这样做吗?或者我需要使用其他类似regex的东西吗?您可以获取
正文的innerHTML
,并在其上进行替换,完成后将新文本写回
-使用JavaScript替换HTML
虽然代码可以工作,但替换HTML可能会产生后果。如果您将任何事件绑定到正文
中的任何元素,那么它们现在将被解除绑定,因为您已经替换了HTML
如果可能的话,如果您对它有任何影响,我不会使用
作为占位符,但可能是一个空元素,您可以使用选择器作为目标,例如
这样,您可以只针对和替换特定的元素,而不影响代码的其余部分
-使用jQuery替换元素
另一种方法可能是将类分配给实际的p
标记,然后在
之后使用jQuery添加锚
-使用jQuery附加新锚
来自演示的代码,以防小提琴失灵
演示-1
一些内容
更多内容
var text=document.body.innerHTML;
var targetText=“”;
var指数=1;
while(text.indexOf(targetText)>-1){
text=text.replace(targetText,”);
索引++;
}
document.body.innerHTML=文本;
演示-2
一些内容
更多内容
var$elements=$(“.nextpage占位符”);
$elements.每个(函数(索引){
$(此)。替换为(“”)
});
演示-3
某些内容
更多内容
var$elements=$(“.nextpage占位符”);
$elements.每个(函数(索引){
$(此)。在(“”)之后
});
是的,这可以通过jquery来完成,在同一句话(/title)中使用“regex”和“html”会让你非常悲伤。:)有趣的是,当你写评论时,我刚刚编辑完标题。
<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;
<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>')
});
<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>')
});