innerText/textContent与检索每个文本节点相比
- 论坛
- innerText/textContent与检索每个文本节点相比
9 浏览
innerText/textContent与检索每个文本节点相比
我听说使用el.innerText||el.textContent
可能会得到不可靠的结果,所以我过去一直坚持使用以下函数:
function getText(node) { if (node.nodeType === 3) { return node.data; } var txt = ''; if (node = node.firstChild) do { txt += getText(node); } while (node = node.nextSibling); return txt; }
这个函数遍历一个元素内的所有节点,并收集所有文本节点和后代节点内的文本:
例如:
foo foo... foo
结果:
getText(document.getElementById('x')); // => "foo foo... foo"
我相当肯定使用innerText
和textContent
存在问题,但我一直没有找到一个明确的列表,开始怀疑这只是道听途说。
有人能提供关于textContent/innerText可能缺乏可靠性的信息吗?
编辑:在Kangax的这个很棒的答案中找到了解答--'innerText' works in IE, but not in Firefox