我需要IE等效的textContent。
在你跳下裤子的位置之前 - innerText与textContent不同。 innerText在DOM渲染器解析时解析空白。 textContent在写入时解析空格。我需要后者,但是I.E.不支持textContent。
例如:
DOM Obj: <p>This is an example.</p>
innerText: "This is an example."
textContent: "This is an example."
答案 0 :(得分:1)
我认为你不能。 IE甚至在TextNode#nodeValue
属性内“标准化”空格。前一阵子我写了这个:
function textValue(element) {
var collector = [];
textValueCollector(element, collector);
return collector.join("");
}
function textValueCollector(element, collector) {
var node;
for (node = element.firstChild; node; node = node.nextSibling)
{
switch (node.nodeType) {
case 3: // text
case 4: // cdata
collector.push(node.nodeValue);
break;
case 8: // comment
break;
case 1: // element
if (node.tagName == 'SCRIPT') {
break;
}
// FALL THROUGH TO DEFAULT
default:
// Descend
textValueCollector(node, collector);
break;
}
}
}
所以我认为这可能是你所需要的,但遗憾的是,没有。正如您在this live example中看到的那样,在IE上,即使我们直接走过文本节点,也会遗漏额外的空格,所以它只显示45的长度,实际上它是61(在其他浏览器上[Chrome] ,Firefox,Opera])。