我有一些JavaScript代码,在IE中包含以下内容:
myElement.innerText = "foo";
然而,'innerText'属性似乎在Firefox中不起作用。Firefox中有类似的吗?或者是否可以使用更通用的跨浏览器属性?
我有一些JavaScript代码,在IE中包含以下内容:
myElement.innerText = "foo";
然而,'innerText'属性似乎在Firefox中不起作用。Firefox中有类似的吗?或者是否可以使用更通用的跨浏览器属性?
当前回答
像这样的东西怎么样?
//$elem is the jQuery object passed along.
var $currentText = $elem.context.firstChild.data.toUpperCase();
**我需要把我的大写。
其他回答
只是从原帖子下的评论中转发。innerHTML适用于所有浏览器。谢谢stefita。
myElement。innerHTML = "foo";
innerText已经添加到Firefox,应该在FF45版本中可用:https://bugzilla.mozilla.org/show_bug.cgi?id=264412
规范草案已经编写完成,并有望在未来被纳入HTML生活标准:http://rocallahan.github.io/innerText-spec/, https://github.com/whatwg/html/issues/465
请注意,目前Firefox、Chrome和IE实现都是不兼容的。展望未来,我们可能会看到Firefox、Chrome和Edge融合在一起,而旧的IE仍然不兼容。
参见:https://github.com/whatwg/compat/issues/5
根据Prakash K的回答,Firefox不支持innerText属性。所以你可以简单地测试用户代理是否支持这个属性,并按照下面的步骤进行:
function changeText(elem, changeVal) {
if (typeof elem.textContent !== "undefined") {
elem.textContent = changeVal;
} else {
elem.innerText = changeVal;
}
}
jQuery提供了一个.text()方法,可以在任何浏览器中使用。例如:
$('#myElement').text("Foo");
myElement.innerText = myElement.textContent = "foo";
编辑(感谢Mark Amery在下面的评论):只有当您确信没有代码会像jQuery那样依赖于检查这些属性是否存在时,才会这样做。但如果你正在使用jQuery,你可能只需要使用"text"函数并执行$('#myElement').text('foo'),就像其他答案显示的那样。