繁体   English   中英

document.getElementById在Mozilla中不起作用

[英]document.getElementById not working in Mozilla

我在Mozilla中遇到document.getElementByID的问题。 在IE和Chrome中,我的代码运行良好。

我写了以下代码:

<script type="text/javascript">
function test(x, y) {
var text1 = document.getElementById('text1');
 for (var i = 0; i < x.length; i++) {
    text1.innerText += x[i]; // prints 12345
  }
   text1.innerText += "\ny: " + y; // prints y: 1,2,3,4,5
  }
</script>


 <body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
<div id="text1"></div>
</form>
</body>

谁能说出为什么在FireFox中不起作用?

我不认为这是对getElementById的调用(如果确实如此),那么您没有提供足够的详细信息–但我可以告诉您Firefox和其他一些浏览器未实现innerText 对于这些浏览器,您需要直接使用textContent或文本节点。

您可以使用功能检测来确定是否支持textContent

var textContentOrInnerText = "textContent" in document.body 
                               ? "textContent" : "innerText";

然后,将此变量用于代码中的属性访问:

text1[textContentOrInnerText] += x[i];

随意将变量缩短到您更喜欢的方式。 请注意,这两个属性之间在行为上有一些细微的差异,但是大多数情况下您不会注意到它们。

textContent是标准行为,这就是为什么我在代码中首先对此进行测试的原因。

innerText在DOM标准中的任何地方都没有引用,因此它是非标准的,并且是仅IE的一种方法。

请使用.textContent获取文本内容。

对于浏览器支持,请使用库或填充程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM