Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript没有返回正确的值(元素的位置)_Javascript_Html_Google Chrome_Position - Fatal编程技术网

JavaScript没有返回正确的值(元素的位置)

JavaScript没有返回正确的值(元素的位置),javascript,html,google-chrome,position,Javascript,Html,Google Chrome,Position,我正在尝试获取一个元素(密码输入)在网页上的位置。我在Chrome的javascript控制台中键入此代码 function fp(obj){ var x=0,y= 0; if (obj.offsetParent) { do { x+= obj.offsetLeft; y+= obj.offsetTop; } while (obj = obj.offsetParent); } }; fp

我正在尝试获取一个元素(密码输入)在网页上的位置。我在Chrome的javascript控制台中键入此代码

function fp(obj){
    var x=0,y= 0;
    if (obj.offsetParent) {
        do {
            x+= obj.offsetLeft;
            y+= obj.offsetTop;
           } while (obj = obj.offsetParent);
    }
};
fp(document.getElementById('password'));
console.log("x="+x+"; y="+y)
它返回x=809;y=380

当用photoshop测量屏幕截图时,它似乎有x=816;y=388

那么问题出在哪里?为什么它没有返回实际距离?

您的问题中包含了标签,因此我假设您已经在使用它了

我建议为此使用函数,该函数应返回您的X和Y坐标:


如果您不使用jQuery,则可以,但它没有jQuery提供的跨浏览器修复程序。

您的对象是什么?也许它是一幅宽度和高度都不算的图像!这是一个密码输入,我猜它与其中一个相关元素的css样式有关。您可以尝试使用
element.getBoundingClientRect()如本文所建议:这可能会导致不同的结果?您在函数中使用
var
您的
x
y
,但不返回them@basilikum它现在正在工作。请提供一个答案,以便我可以接受。我没有使用jQuery,我需要它与javascript一起使用。@Enve那么您最好的选择是使用
元素。getBoundingClientRect()
var p = $('#password').position();
console.log("x=" + p.left + "; y=" + p.top);