[code="java"]
function more(i){ document.getElementsByName("contentdoc").item(i).style.height="auto"; document.getElementsByName("seemore").item(i).style.display="none"; document.getElementsByName("hidden").item(i).style.display="block"; } function hidden(i){ document.getElementsByName("contentdoc").item(i).style.height="270px"; document.getElementsByName("seemore").item(i).style.display="block"; document.getElementsByName("hidden").item(i).style.display="none"; }………………………………
[/code]
上面是我页面代码的一部分,上面的代码在firefox下可以使用,但是在ie下 ,就出现问题了,试过
document.getElementsByName("contentdoc")[i].style.height="270px";也不行 ,
现在我想知道为什么会出现这个问题,我应该怎么解决, 希望会的能上机试试,别只说不练 ,谢谢
[b]问题补充:[/b]
对于pan_java (初级程序员) 的回答,我感觉是这个样子的,但是我一个页面有好多的contentdoc ,并不是只有一个,所以我不能使用id
现在我想解决的问题是,为什么会在ie下访问不了,并且我该怎么解决呢? 请楼下的说清楚点,谢谢啦
[code="java"]
//参数tagName:标签的名字,比如"div"
//参数name:标签的属性,比如"contentdoc"
//返回的dom对象数组
function getElementsByName (tagName,name) {
var returns = document.getElementsByName(name);
if(returns.length > 0) return returns;
returns = new Array();
var e = document.getElementsByTagName(tagName);
for(i = 0; i < e.length; i++) {
if(e[i].getAttribute("name") == name) {
returns[returns.length] = e[i];
}
}
return returns;
}
[/code]
这个我觉得应该是没问题的
你可以打印一下
alert(document.getElementsByName("contentdoc")[i].style.height);看有没有值,有就说明可以获得的
[code="html"]
………………………………
[/code]
为什么会出现这个问题
因为ff与IE的解析的方式不同,在设计时我们经常会碰到这样的问题!
采用getElementById得到对象ff与IE都支持
document.getElementsByName("contentdoc")[i].style.height="270px";
这个写法没错,你先试一下
document.getElementsByName("contentdoc")[i]
alert(document.getElementsByName("contentdoc")[i]);
是不是个对象,然后再调用它的].style.height="270px";