我有一些JavaScript代码,在IE中包含以下内容:

myElement.innerText = "foo";

然而,'innerText'属性似乎在Firefox中不起作用。Firefox中有类似的吗?或者是否可以使用更通用的跨浏览器属性?


当前回答

myElement.innerText = myElement.textContent = "foo";

编辑(感谢Mark Amery在下面的评论):只有当您确信没有代码会像jQuery那样依赖于检查这些属性是否存在时,才会这样做。但如果你正在使用jQuery,你可能只需要使用"text"函数并执行$('#myElement').text('foo'),就像其他答案显示的那样。

其他回答

Firefox使用w3c兼容的textContent属性。

我猜Safari和Opera也支持这个属性。

根据Prakash K的回答,Firefox不支持innerText属性。所以你可以简单地测试用户代理是否支持这个属性,并按照下面的步骤进行:

function changeText(elem, changeVal) {
    if (typeof elem.textContent !== "undefined") {
        elem.textContent = changeVal;
    } else {
        elem.innerText = changeVal;
    }
}

像这样的东西怎么样?

//$elem is the jQuery object passed along.

var $currentText = $elem.context.firstChild.data.toUpperCase();

**我需要把我的大写。

从2016年的Firefox v45开始,innerText在Firefox上工作,看看它的支持:http://caniuse.com/#search=innerText

如果希望它能在以前版本的Firefox上运行,可以使用textContent,它在Firefox上有更好的支持,但在较旧的IE版本上更差:http://caniuse.com/#search=textContent

myElement.innerText = myElement.textContent = "foo";

编辑(感谢Mark Amery在下面的评论):只有当您确信没有代码会像jQuery那样依赖于检查这些属性是否存在时,才会这样做。但如果你正在使用jQuery,你可能只需要使用"text"函数并执行$('#myElement').text('foo'),就像其他答案显示的那样。