比如div中有这样的内容<p>dgadfadsg</p><img src="test.jpg"/>,div中包含其他html标签,这种情况下怎么获取他的高度?

解决方案 »

  1.   

    首先获得这个对象o,用document.getElementById或者别的什么都行,然后o.offsetHeight就是它的视图高度了
      

  2.   


    alert(document.getElementById("divID").offsetHeight+"px");
      

  3.   

    alert(document.getElementById("test").offsetHeight);
      

  4.   

    document.getElementById("test").offsetHeight
      

  5.   

    to #2,#3,#4
    当div有height属性的时候,offsetHeight获取的高度并不对!
    比如:
    div并没有填充满,但是他的offsetHeight却是300px
      

  6.   

    代码贴不上去 假设div的height=300px
      

  7.   

    那LZ的意思是里面内容的高度了?变通的方法var cs = document.getElementById("divID").childNodes;var tHeight = 0;
    for (var i = 0, l = cs.length; i < l; i++)
    {
        tHeight += cs[i].offsetHeight;
    }alert(tHeight);
      

  8.   

    jQuery里面有个height()方法,最简单
      

  9.   

    to 9
    这样基本解决了问题,但是div中若包含没有<p></p>或其他标签包裹的文字,则无法正确获取到内部的高度
      

  10.   

    如果没有见容高度的话。
    document.getElementById("divID").offsetHeight
      

  11.   

    alert(document.getElementById("test").offsetHeight);
      

  12.   

    to 15楼 
    height获取的是div.style.height减去边框的高度的啊。
    offsetHeight在定义div的height不能正确的获取div里的高度
      

  13.   

    你可以参考一下下面这些,里百很多属性是通用的: <SCRIPT   LANGUAGE="JavaScript">     
            var   s;     
            s   +=   "\r\n网页可见区域宽:"+   document.body.clientWidth;     
            s   +=   "\r\n网页可见区域高:"+   document.body.clientHeight;     
            s   +=   "\r\n网页可见区域宽:"+   document.body.offsetWidth?   +"   (包括边线的宽)";     
            s   +=   "\r\n网页可见区域高:"+   document.body.offsetHeight   +"   (包括边线的宽)";     
            s   +=   "\r\n网页正文全文宽:"+   document.body.scrollWidth;     
            s   +=   "\r\n网页正文全文高:"+   document.body.scrollHeight;     
            s   +=   "\r\n网页被卷去的高:"+   document.body.scrollTop;     
            s   +=   "\r\n网页被卷去的左:"+   document.body.scrollLeft;     
            s   +=   "\r\n网页正文部分上:"+   window.screenTop;     
            s   +=   "\r\n网页正文部分左:"+   window.screenLeft;     
            s   +=   "\r\n屏幕分辨率的高:"+   window.screen.height;     
            s   +=   "\r\n屏幕分辨率的宽:"+   window.screen.width;     
            s   +=   "\r\n屏幕可用工作区高度:"+   window.screen.availHeight;     
            s   +=   "\r\n屏幕可用工作区宽度:"+   window.screen.availWidth;     
            alert(s);     
            </SCRIPT>    
      

  14.   

    这些内容都试过,当div中包含<p>、<img >等标签时,在火狐中正常,但在Apple的Safari浏览器中就不正常了,我查找了其中的原因,浏览器下载文本内容较快,图片(img)等内容的下载速度较慢,当div中包含图片内容,在图片下载未结束时,即img的readyState处于不同的状态时,document 的readyState值也在变化,在不同的状态下读取的Div的高度值是不同时。当document 的readyState 等于“complete”时,图片下载已经完成,文档下载结束。此时读取的Div的值才是最终的稳定值。
    概括地说,当Div中包含img等其他标签时,其他标签的内容下载是否完成,会影响到div的高度值的判读的准确性。这个问题在Apple的Safari浏览器中表现比较明显
      

  15.   

    ClientHeight,offsetHeight,ScrollHeight