如何得到没有初始值的div的style.top?   我的到的都是0,可是div明明在中间

解决方案 »

  1.   

    使用currentStyle我能得到的是auto<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </HEAD> <BODY>
      <div id="d1" width="200" height="200" style="display:block">
    <p>div 1</p>
      </div>
        <div id="d2" >
    <p>div 2</p>
      </div>
      <script>
      var d = document.getElementById("d1");
    alert("div 2 top:"+d.currentStyle.top);
      </script>
     </BODY>
    </HTML>
      

  2.   

    如果楼主是要得到DIV坐标吧<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
        <HEAD>
            <TITLE>New Document </TITLE>
        </HEAD>
        <BODY>
            <table width="100%" height="100%" border="1">
                <tr height="100px">
                    <td align="center">
                        <div id="div1">
                            <h1>div1</h1>
                        </div>
                    </td>
                </tr>
            </table>
            <script>
                var d = document.getElementById("div1");
                alert("top:" + d.offsetTop);
            </script>
        </BODY>
    </HTML>
      

  3.   

    在中间?确定div的position是absolute?
    放代码
      

  4.   

    div在中间有可能是受到别的元素的影响,例如父元素的一些属性或兄弟结点。如果楼主是想获取该div的位置可以这样function pageY(elem){
      return elem.offsetParent?
        elem.offsetTop + pageY(elem.offsetTop):
        elem.offsetTop;
    }
    alert(pageY(document.getElementById('div的id')));
      

  5.   

    获取css 设置的style值 
    需要使用  document.defaultView..getComputedStyle(node, null).getPropertyValue(styleString) //w3c方法
    其中node为你要查询的节点对象 styleString为 如'top' 或'background-color' 此类属性名 而不是js中的backgroundColor 之类的
    ie的话 用 node.currentStyle[styleString]  但这个styleString 要用 'backgroundColor' 这种格式取记得 如果你没有 在node.style.属性名='' 这样显式的在js中赋值 你用node.style. 是取不到值的 必须使用上面的方法