怎样获取一个文本框在页面上的位置信息?

我有一个文本框,下面还有一个DIV,我想让DIV绝对定位在文本框的下面,
因为如果相对定位的话,文本框下面的按钮之类的会被DIV撑走。
我想让DIV浮在这些按钮之上并定位在文本框之下。
不知道怎么得到这个文本框的TOP,LEFT值,因为我并没有设置这些值,
用文本框.style.top/left得不到。
希望达人们帮帮忙。谢谢。

先将div和文本框放在同一个父元素之下.
然后通过文本框的offsetTop/offsetHeight/offsetLeft的值,对div进行定位:

[code="js"]
var divObj = ...;//div元素
var inputObj = ...;//文本框
divObj.style.top = inputObj.offsetTop + inputObj.offsetHeight;
divObj.style.left = inputObj.offsetLeft;
[/code]

使用jquery1.2.6,其中有相关的函数,API参考中似乎没有,不过看源代码就能找到。

只有在position为relative或absolute时才能操作top/right/bottom/left.
你的这个问题首先要设定DIV的position为下列情况之一
1.relative:相对定位,这时div的尺寸会影响父节点的尺寸
2.absolute:绝对定位,这时div的尺寸不影响父节点的尺寸,但是具体位置受父节点的position设置影响.

其中的具体差异你测试一下就明白了.根据你的情况选择relative,然后设置top值也许就能解决问题

楼主看下,是不是下面代码表达的意思.
[code="javascript"]


style="position:absolute; left:150; top:100; "/> alert(myText.offsetTop)



[/code]

[img]http://double-love.iteye.com/admin/pictures/24531[/img]

看看是不是我相册里的那个样子!我上传的图片不见了!

[img]http://Double-Love.iteye.com/upload/picture/pic/24531/cf55ccb8-12fe-37b4-8b6b-996ceb914d8a.jpg[/img]

function pos(){ alert(uname.offsetTop+" "+uname.offsetLeft); }

[code="java"][/code]

直接调用offsetTop,offsetLeft属性就可以了

如果需要兼容ie,firefox,那么元素的父元素的css设置会使在这两个浏览器下获取的offset值不一样,比如说父元素、祖父元素是否使用的浮动,是否设置了相对绝对定位等等,从而使的定位出现偏差,最保险的方法,是先获取文本框相对于body的偏移,示例代码
[code="java"]
getEventPosition:function(Q,O)
{
if(typeof Q.offsetX!='undefined')
{
var H=Q.target||Q.srcElement;
var y=[Q.offsetX,Q.offsetY];
while(H&&H!=O)
{
var la=H.style.zoom;
if(la)
{
y[0]*=la; y[1]*=la;
}
if(!(0==H.clientWidth && 0==H.clientHeight && H.offsetParent && 'TD'==H.offsetParent.nodeName))
{

y[0]+=H.offsetLeft;
y[1]+=H.offsetTop;
}
H=H.offsetParent;
};
return y;
}
else if(typeof Q.pageX!='undefined')
{
var y=u.getPageOffset(O);
return[Q.pageX-y[0],Q.pageY-y[1]];
}
else return[0,0];
}
getPageOffset:function(m)
{
var Z=[0,0];
F=m;
while(F && F.offsetParent)
{
Z[0]+=F.offsetLeft;
Z[1]+=F.offsetTop;
F=F.offsetParent
};
return Z;
}
[/code]
关键代码自己看啦。