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>
------解决方案--------------------
------解决方案--------------------
只能用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>