当前位置: 代码迷 >> JavaScript >> IE 里 label 的 innerHTML 属性没用?该怎么解决
  详细解决方案

IE 里 label 的 innerHTML 属性没用?该怎么解决

热度:1083   发布时间:2012-07-30 16:19:05.0
IE 里 label 的 innerHTML 属性没用?
IE 里 label 的 innerHTML 属性没用?我发现在 FIREFOX 里 label标签 的 innerHTML 属性可以用,

但是 在IE 里(无论是IE几点0) 里 这个属性都没用,

比如说:

<label name='lb[]'>我要的文字</label>
<label name='lb[]'>我要的文字2222222</label>


lb=document.getElementsByName('lb');

alert(lb[0].innerHTML);

提示 lb.0.innerHTML 为空或不是对象

------解决方案--------------------
lb=document.getElementsByName('lb');
改成
lb=document.getElementsByTagName('label');
可以
------解决方案--------------------
用getElementsByTagName('label')来获取label元素吧。IE中getElementsByName()方法只对BUTTON, TEXTAREA, APPLET, SELECT, FORM, FRAME, IFRAME, IMG, A, INPUT, OBJECT, MAP, PARAM, META这些元素有效。

并且,你贴出的代码也有问题,应该是:
lb=document.getElementsByName('lb[]');
------解决方案--------------------
getElementsByName这个方法在ie中有问题,只能获取到几种标签的集合。或者你可以添加多个id和name重名,也能找到,但这种方式不推荐,兼容的话最好还是用getElementsByTagName吧。

修改如下可以获取,但方法不推荐。
HTML code

<div name='lb' id="lb">我要的文字</div>
<label name='lb' id="lb">我要的文字2222222</label>

------解决方案--------------------
探讨

比如说这样:

<label name='lb[]'>我要的文字</label>
<label name='lb[]'>我要的文字2222222</label>


<label name='xx[]'>我要的文字33333333</label>
<label name='xx[]'>我要的文字4444444</label>

------解决方案--------------------
只能用getElementsByTagName获取后再排除没有class="lb[]",name只有ie认得!
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>label 的 innerHTML</title>
</head>
<body>
<label class='lb[]'>我要的文字</label>
<label class='lb[]'>我要的文字2222222</label>

<script type="text/javascript">
lb=document.getElementsByTagName('label');
var str= new Array();
for(i=0;i<lb.length;i++)
{    
    if(lb[i].className=="lb[]")
        str[i]=lb[i].innerHTML;
}
alert(str[0]);
</script>
</body>
</html>

------解决方案--------------------
将你的js代码放入window.onload里面,或者写在最下面。
<script>
window.onload=function(){
var o=document.getElementsByTagName('input');
 
alert(o.length);

for (var i = 0; i < o.length; i ++)
{
if (o[i].getAttribute('name') == 'ckson[]') 
{
alert(o[i].value); 
}
 
 }
}
 
</script>
  相关解决方案