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

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

在我的案例中没有匹配项......

最佳答案

获得 .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) .

关于javascript - 使用javascript检测文本中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415000/

相关文章:

Javascript 构造函数模式和垃圾收集器

javascript - jQuery - 检查拖动后元素是否可见

javascript - 删除在平板电脑模式下不起作用的事件元素

javascript - Node对象和Element对象的区别?

Javascript 对象作为参数处理

javascript - Selenium-webdrivers firefox ubuntu 激活javascript

php - SimpleXML——剥离 CDATA 标签(或在 XML 中嵌入 HTML 标记)

html - 如何自动选择数据列表中的第一项(html 5)?

javascript - 如何在 javascript 中交换 HTML 元素?

javascript - 从字符串中获取 DOM