我可以在元素中使用 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/