使用javascript检测文本中的换行符

时间:2014-10-16 22:31:49

标签: javascript html dom

我可以在元素中使用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');
}

在我的情况下没有匹配......

1 个答案:

答案 0 :(得分:5)

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

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

相反,你应该在实际的DOM中搜索你想要的东西,或者只查找一小段你知道不能改变或使用容忍HTML变化的搜索算法的HTML。 / p>

正如Niels在评论中提到的那样,Chrome,IE11和Firefox都返回"Hello <br> World",您可以通过这样一个简单的调试语句自行查看:

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

工作演示,亲眼看看它显示的内容:http://jsfiddle.net/jfriend00/zc59x2bL/


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