这适用于v69及更低版本。
最后一个单元格之前的单元格的每个innerText值都带有结尾字符。
在此处查看:http://jsfiddle.net/L16x9gpe/
<html>
<body>
<table>
<tr id='row'>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
</body>
</html>
编辑:我在这里提出了有关Chromium开发的问题:https://bugs.chromium.org/p/chromium/issues/detail?id=897373似乎目前所有浏览器都没有尾随字符的问题,包括Firefox显然是原始规范的出处。提交作者井上良史(yosin@chromium.org)表示这应该是正确的实现。我认为它应该像其他浏览器一样工作,并且不具有这种区别行为。 whatwg规范应该更改为更具体,并且仅包括用于表或行innerText调用的尾随制表符(U + 0009),而不是直接调用td单元格。
答案 0 :(得分:1)
我有完全相同的问题。我现在使用的解决方法是将代码更改为cell.innerText.trim()
。
答案 1 :(得分:1)
根据标准(基于以下链接),Chrome团队似乎“修复了无法正常工作的故障”。 这也使我对继承的应用程序措手不及。
答案 2 :(得分:0)
我正在做一些简单的文本比较,所以切换到.innerHTML,因为它似乎没有与.innerText相同的制表符/ LF附加要求。
就我而言,单元格中没有任何HTML。我以为.innerText更清楚了,我只想要文本。但是,我想,如果要将表格单元格转换为文本,则需要具有这些分隔符。
答案 3 :(得分:0)
这打破了我为客户编写的扩展程序。我正在检查cells [blah] .innerText =='somevalue',并且这些检查在应为真时随更新而为false。
将innerText更改为textContent可以解决此问题,这是违反直觉的,因为textContent应该保留与pre标签相同的空格,而innerText应该只是为您提供文本。