offsetheight 为什么获取不了?

iLove9ouHenry 2010-09-02 11:48:55
请问怎么获取offsetheight的值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<style type="text/css">

</style>
<body>
<script type="text/javascript">
function f(){

alert( );
if(document.getElementsByName("pic").offsetHeight>200){
alert("<200")}
else{alert(">200")};
}
f();
</script>


<img src="pic3.jpg" name="pic">

</span>
</body>
</html>
哪位大侠给个例子?
...全文
1235 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyuluyi 2011-06-09
  • 打赏
  • 举报
回复
这该死的高度
zero22cool 2010-09-03
  • 打赏
  • 举报
回复
有2个问题
1.使用了document.getElementsByName,返回的是对象组,是个数组。这种情况干嘛不用getElementById呢?
这里,document.getElementsByName("pic")[0] 等于 document.getElementById("pic")
2.把f()放在最后执行
iLove9ouHenry 2010-09-03
  • 打赏
  • 举报
回复
http://hi.baidu.com/fighting_good/blog/item/4159f8370a906c3d0b55a96e.html 大家可以看下这个。。
iLove9ouHenry 2010-09-03
  • 打赏
  • 举报
回复
window.onload 和<body onload=" ">那个早些?
iLove9ouHenry 2010-09-03
  • 打赏
  • 举报
回复
为什么是window.onload呢?跟直接调用f 的区别是什么哈?
hoojo 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 showbo 的回复:]

js代码执行的位置超前了,执行方法f要放到window.onload中,你那样的循序img还没有在dom中生成,你引用的话就出错了,而且document.getElementsByName返回的事 dom对象数组,而不是dom对象,建议改成getElementById来做

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra……
[/Quote]
汗,没细看
  • 打赏
  • 举报
回复
js代码执行的位置超前了,执行方法f要放到window.onload中,你那样的循序img还没有在dom中生成,你引用的话就出错了,而且document.getElementsByName返回的事 dom对象数组,而不是dom对象,建议改成getElementById来做

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<style type="text/css">

</style>
<body>
<script type="text/javascript">
function f(){

//document.getElementsByName返回的数组,不是dom对象,所以要取数组中的dom对象
//你的输出也错了吧,怎么>200输出<200......
if(document.getElementsByName("pic")[0].offsetHeight>200)
//alert("<200");
alert(">200");
else
//alert(">200");
alert("<200");
}
window.onload=f//===================
</script>


<img src="pic3.jpg" name="pic" style="height:100px">

</span>
</body>
</html>
hoojo 2010-09-03
  • 打赏
  • 举报
回复
用document.getElementsByName("pic").clientHeight看看
  • 打赏
  • 举报
回复
2楼正解,name="pic"还没有出来就去找这个对象,那肯定是找不到的
shehun 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 showbo 的回复:]

js代码执行的位置超前了,执行方法f要放到window.onload中,你那样的循序img还没有在dom中生成,你引用的话就出错了,而且document.getElementsByName返回的事 dom对象数组,而不是dom对象,建议改成getElementById来做

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra……
[/Quote]
这个应该是可以的。
hoojo 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 minjun0901 的回复:]

window.onload 和<body onload=" ">那个早些?
[/Quote]
自己测试下alert就知道了,你会更深刻写
因为放在onload中的是等待你页面所有的dom元素构建完毕后才触发事件,然后再执行代码的
如果你直接用f()会立即运行,页面会按照它的顺序执行代码,所以下面会找不到元素
或取不到高度

52,787

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧