Javascript 如何阻止div在使用innerHTML插入文本时识别HTML标记?

Javascript 如何阻止div在使用innerHTML插入文本时识别HTML标记?,javascript,html,browser,Javascript,Html,Browser,上面的代码有一个问题:HTML标记被呈现。我想要相反的行为:我想要呈现为字符串,而不是任何粗体。我还希望能够使用“\t”和“\n”作为换行符和制表符。我能做什么?当您应该使用div.innerText时,您正在使用div.innerHTML innerText不是跨浏览器的,我建议您使用类似于jQuery的库,这样您就不会出现此类问题: 使用jQuery,您可以编写如下内容 div.innerHTML = my_text; 上面的替换将您的“\t”替换为“\t”,这样您将在文本上看到\t 无论

上面的代码有一个问题:HTML标记被呈现。我想要相反的行为:我想要
呈现为字符串,而不是任何粗体。我还希望能够使用“\t”和“\n”作为换行符和制表符。我能做什么?

当您应该使用div.innerText时,您正在使用div.innerHTML

innerText不是跨浏览器的,我建议您使用类似于jQuery的库,这样您就不会出现此类问题:

使用jQuery,您可以编写如下内容

div.innerHTML = my_text;
上面的替换将您的“\t”替换为“\t”,这样您将在文本上看到\t

无论如何,标准似乎是属性textContent。 这里是一些信息在网站上



更好地满足您需要的另一种解决方案可能是对文本进行编码,然后将
'\t'
替换为
,在该解决方案中,使用innerHTML属性。

当您应该使用div.innerText时,您使用的是div.innerHTML

innerText不是跨浏览器的,我建议您使用类似于jQuery的库,这样您就不会出现此类问题:

使用jQuery,您可以编写如下内容

div.innerHTML = my_text;
上面的替换将您的“\t”替换为“\t”,这样您将在文本上看到\t

无论如何,标准似乎是属性textContent。 这里是一些信息在网站上



更好地满足您需要的另一种解决方案可能是对文本进行编码,然后将
'\t'
替换为
,在该解决方案中,使用innerHTML属性。

当您应该使用div.innerText时,您使用的是div.innerHTML

innerText不是跨浏览器的,我建议您使用类似于jQuery的库,这样您就不会出现此类问题:

使用jQuery,您可以编写如下内容

div.innerHTML = my_text;
上面的替换将您的“\t”替换为“\t”,这样您将在文本上看到\t

无论如何,标准似乎是属性textContent。 这里是一些信息在网站上



更好地满足您需要的另一种解决方案可能是对文本进行编码,然后将
'\t'
替换为
,在该解决方案中,使用innerHTML属性。

当您应该使用div.innerText时,您使用的是div.innerHTML

innerText不是跨浏览器的,我建议您使用类似于jQuery的库,这样您就不会出现此类问题:

使用jQuery,您可以编写如下内容

div.innerHTML = my_text;
上面的替换将您的“\t”替换为“\t”,这样您将在文本上看到\t

无论如何,标准似乎是属性textContent。 这里是一些信息在网站上



更好地满足您需要的另一种解决方案可能是对文本进行编码,然后将
'\t'
替换为
,在此解决方案中,使用innerHTML属性。

要防止呈现HTML,只需将其转义:

$('#you_div').text(str.replace(/\t/g," "));
或者,尝试此“清洁剂”选项:


要防止呈现HTML,只需将其转义:

$('#you_div').text(str.replace(/\t/g," "));
或者,尝试此“清洁剂”选项:


要防止呈现HTML,只需将其转义:

$('#you_div').text(str.replace(/\t/g," "));
或者,尝试此“清洁剂”选项:


要防止呈现HTML,只需将其转义:

$('#you_div').text(str.replace(/\t/g," "));
或者,尝试此“清洁剂”选项:




innerText不是跨浏览器的。它也不会呈现“\t”制表符。我要求未来的选民在评判之前仔细阅读整个问题。在哪里提到了
innerText
?此外,呈现选项卡字符是一个
replace
操作的问题。(createTextNode也不呈现选项卡字符)@Viclib replace\t有四个空格…但也不呈现四个空格:/innerText不跨浏览器。它也不会呈现“\t”制表符。我要求未来的选民在评判之前仔细阅读整个问题。在哪里提到了
innerText
?此外,呈现选项卡字符是一个
replace
操作的问题。(createTextNode也不呈现选项卡字符)@Viclib replace\t有四个空格…但也不呈现四个空格:/innerText不跨浏览器。它也不会呈现“\t”制表符。我要求未来的选民在评判之前仔细阅读整个问题。在哪里提到了
innerText
?此外,呈现选项卡字符是一个
replace
操作的问题。(createTextNode也不呈现选项卡字符)@Viclib replace\t有四个空格…但也不呈现四个空格:/innerText不跨浏览器。它也不会呈现“\t”制表符。我要求未来的选民在评判之前仔细阅读整个问题。在哪里提到了
innerText
?另外,呈现制表符是一个
replace
操作的问题。(createTextNode也不呈现制表符)@Viclib replace\t有四个空格…但四个空格也不呈现:/它不呈现\t字符。这是因为您的字符串有字符“\t”执行regex.replace of“\t”到“\\t”这样就行了。下面是一个示例:var result=str.replace(patt1,\\t”);在此链接中:用以前的代码替换行搜索。我在我的网站和该链接上都这样做了。它只是呈现“\t”本身,而不是一个选项卡…我知道你想要它。。。我想我误解了您的意思。只需将\t替换为“”四个空格…它不会呈现\t个字符。这是因为您的字符串具有字符“\t”执行正则表达式。将“\t”替换为“\\t”即可。下面是一个示例:var result=str.replace(patt1,\\t”);在此链接中:用以前的代码替换行搜索。我在我的网站和该链接上都这样做了。它只是呈现“\t”本身,而不是一个选项卡…我知道你想要它。。。我想我误解了您的意思。只需将\t替换为“”四个空格…它不会呈现\t个字符。这是因为您的字符串具有字符“\t”执行正则表达式。将“\t”替换为“\\t”即可。这是我的前任