用javascript检测文本中的换行符

Detect line break in text with javascript

本文关键字:换行符 文本 javascript 检测      更新时间:2023-09-26

我可以在元素中使用javascript设置换行符,但我无法读取它们。

示例:

<div id="text"></div>

Js:

document.getElementById("text").innerHTML = "Hello <br /> World";
var x = document.getElementById("text").innerHTML;
if(x == "Hello <br /> World")
{
alert('Match');
}

在我的情况下没有对手。。。

从对象中获取.innerHTML属性,然后尝试将其与某个精确的字符串进行比较,这几乎不是一件好事。这是因为浏览器唯一的约定是向您返回等效的HTML,而不一定是完全相同的HTML。如果您请求的内容中没有嵌套的DOM元素,这可能不是问题,但如果有嵌套的HTML元素,这通常会成为问题。

例如,IE的某些版本会更改属性的顺序、更改引用、更改间距等

相反,您应该在实际的DOM中搜索您想要的内容,或者只查找一小块您知道无法更改的HTML,或者使用可以容忍HTML更改的搜索算法。

正如Niels在评论中提到的,Chrome、IE11和Firefox都返回"Hello <br> World",您可以通过下面这样的简单调试语句亲眼看到:

console.log("'" + x + "'");

工作演示,亲眼看看它显示了什么:http://jsfiddle.net/jfriend00/zc59x2bL/


仅供参考,您的代码也包含一个错误。您需要向document.getElementById()传递一个字符串,该字符串应该是document.getElementById("test"),而不是document.getElementById(test)