Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用迭代计数查找/替换的正则表达式或jQuery_Javascript_Jquery_Regex_Tinymce - Fatal编程技术网

Javascript 使用迭代计数查找/替换的正则表达式或jQuery

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&

我有一个基于tinymce的文档,需要对其进行查找/替换

文档中的标记将在html中具有特定的
注释标记,如下所示:

<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>')
});