带有getElementByClassName的innerHTML不起作用 [英] innerHTML with getElementByClassName doesn't work

查看:786
本文介绍了带有getElementByClassName的innerHTML不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



 < td onmouseover =document.getElementById('textbox')。innerHTML ='Hidden text'onmouseout =document.getElementById('textbox')。innerHTML ='显示文本'> 
< div id =textbox>显示文字< / div>
< / td>

但这不是:

<$ ('textbox')。innerHTML ='隐藏文字'onmouseout =document.getElementByClassName('textbox')。innerHTML ='显示文字' >
< div class =textbox>显示文字< / div>
< / td>

我该如何解决这个问题?我需要一个类多次使用它。

解决方案

没有 getElementByClassName function但是 getElementsByClassName ,因为可以有多个元素给定类。



您可以替换

  document.getElementByClassName('textbox')

with

  document.getElementsByClassName('textbox')[ 0] 

编辑您的问题后编辑:



此功能在IE8上不可用。如果您想在此浏览器上使用它,您必须添加一个填充程序,例如此问题


This one works:

<td onmouseover="document.getElementById('textbox').innerHTML='Hidden text'" onmouseout="document.getElementById('textbox').innerHTML='Show text'">
    <div id="textbox">Show text</div>
</td>

But this one doesn't:

<td onmouseover="document.getElementByClassName('textbox').innerHTML='Hidden text'" onmouseout="document.getElementByClassName('textbox').innerHTML='Show text'">
    <div class="textbox">Show text</div>
</td>

How can I fix this? I need a class to use it more than once.

解决方案

There's no getElementByClassName function but a getElementsByClassName one because there can be more than one element with a given class.

You could replace

 document.getElementByClassName('textbox')

with

 document.getElementsByClassName('textbox')[0]

EDIT following the edit of your question :

This function isn't available on IE8. If you want to use it on this browser, you must add a shim, such the one which is described in this question.

这篇关于带有getElementByClassName的innerHTML不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆