是否可以替换没有选择器的文本?

时间:2016-05-09 15:48:34

标签: javascript jquery html markdown

我使用javascript将markdown转换为html。

如果我将<span id="printHello></span>添加到降价处,转换后,我仍然可以使用getElementById()来获取引用。但是,有一个例外:

var abc = true;
<span id="printHello></span>
var def = false;

如果在代码块中添加了标记,它将在转换过程中被转义。我再也无法得到这个元素了。

所以我在想是否可以添加标识符文本,在markdown转换为html后替换标识符文本。像这样:

var abc = true;
I_am_an_identifier
var def = false;

转换后,我明白了:

<pre><code>var abc = true;
I_am_an_identifier
var def = false;
</code></pre>

所以我可以将I_am_an_identifier替换为<span id="printHello></span>

是否可以通过内容替换?

2 个答案:

答案 0 :(得分:0)

您的问题的答案是,您可以使用replace方法将HTML中的字符串替换为其他字符串。

document.body.innerHTML = document.body.innerHTML.replace('I_am_an_identifier', '<span id="printHello"></span>');

请注意,这将替换I_am_an_identifier的第一个实例,包括HTML代码中的任何实例(例如类名等),因此请谨慎使用。

要替换目标字符串的所有实例,请使用带有全局标志的简单正则表达式:

document.body.innerHTML = document.body.innerHTML.replace(/I_am_an_identifier/g, '<span id="printHello"></span>');

答案 1 :(得分:0)

Javascript包含标签

幸运的是,您可以使用您的标识符关键字(假设您选择&#34; printHello&#34;)以JavaScript 标签的形式:

<pre><code>var abc = true;
printHello: 
var def = false;
</code></pre>

比你能找到并用你喜欢的任何东西替换它。