Javascript:向'添加/减去;顶部';元素属性?

Javascript:向'添加/减去;顶部';元素属性?,javascript,jquery,Javascript,Jquery,我正在尝试从页面上的元素添加一些像素。这样我就可以创建一个新元素并将其放置在上面 posy = document.getElementById('user').style.top + 20; 但它返回的是“50px20”,我还没有尝试减去它,但我应该怎么做才能防止它返回“px” 在jQuery中有这样做的方法吗 谢谢, 亚历克斯。你问的有点让人困惑。您说需要top属性,但这可能是元素在页面上的位置或其样式的顶部值。有一个明显的区别。听起来您想要元素的位置,因为您将结果存储在posy中。这与获

我正在尝试从页面上的元素添加一些像素。这样我就可以创建一个新元素并将其放置在上面

 posy = document.getElementById('user').style.top + 20;
但它返回的是“50px20”,我还没有尝试减去它,但我应该怎么做才能防止它返回“px”

在jQuery中有这样做的方法吗

谢谢,
亚历克斯。

你问的有点让人困惑。您说需要
top
属性,但这可能是元素在页面上的位置或其样式的顶部值。有一个明显的区别。听起来您想要元素的位置,因为您将结果存储在
posy
中。这与获取CSS的最大值不同,CSS的最大值只有在样式表中定义后才会存在

要在jQuery中获取
top
CSS值,可以使用

$('selector').css('top');
要获取元素的位置,请使用jQuery的
offset()
position()
方法。你可能会想要补偿

$('selector').offset().top; //or .left
要修复
px
em
的返回值,请尝试parseInt

parseInt(value);

你问的有点让人困惑。您说需要
top
属性,但这可能是元素在页面上的位置或其样式的顶部值。有一个明显的区别。听起来您想要元素的位置,因为您将结果存储在
posy
中。这与获取CSS的最大值不同,CSS的最大值只有在样式表中定义后才会存在

要在jQuery中获取
top
CSS值,可以使用

$('selector').css('top');
要获取元素的位置,请使用jQuery的
offset()
position()
方法。你可能会想要补偿

$('selector').offset().top; //or .left
要修复
px
em
的返回值,请尝试parseInt

parseInt(value);

JavaScript的
+
运算符执行字符串的串联以及数字的添加。这可能会非常令人困惑,但一旦您知道,使用以下方法很容易解决:

还有一个怪癖:
parseInt(number)
并不总是像预期的那样工作。如果
number
是一个以前导零开始的数字字符串(如
0123
),则parseInt将假定它位于基数8中

要确保它按预期工作,请使用
radix
parseInt(数字,10)

附言:关于你的潜在意图,我有一个很好的观点。虽然我同意他的建议,使用jQuery,但也可以使用纯JavaScript:

function findOffsetTop(element) {
    var offset = 0;
    do {
        offset += element.offsetTop;
    } while (element = element.offsetParent);
    return offset;
}

var user = document.getElementById('user');
var posy = findOffsetTop(user) + 20;

(基于)

JavaScript的
+
运算符执行字符串的串联以及数字的添加。这可能会非常令人困惑,但一旦您知道,使用以下方法很容易解决:

还有一个怪癖:
parseInt(number)
并不总是像预期的那样工作。如果
number
是一个以前导零开始的数字字符串(如
0123
),则parseInt将假定它位于基数8中

要确保它按预期工作,请使用
radix
parseInt(数字,10)

附言:关于你的潜在意图,我有一个很好的观点。虽然我同意他的建议,使用jQuery,但也可以使用纯JavaScript:

function findOffsetTop(element) {
    var offset = 0;
    do {
        offset += element.offsetTop;
    } while (element = element.offsetParent);
    return offset;
}

var user = document.getElementById('user');
var posy = findOffsetTop(user) + 20;

(基于)普通Javascript方法:

posy=document.getElementById('user').style.top.replace('px','')+20

jQuery方法:


posy=$('user').css('top').replace('px','')+20

普通Javascript方法:

posy=document.getElementById('user').style.top.replace('px','')+20

jQuery方法:

posy=$('user').css('top').replace('px','')+20

尝试以下操作:

posy = parseInt(document.getElementById('user').style.top) + 20;
试试这个:

posy = parseInt(document.getElementById('user').style.top) + 20;

谢谢你,伙计!很抱歉解释得不够充分,但效果很好!谢谢你,伙计!很抱歉解释得不够充分,但效果很好!这对我也很有帮助。谢谢这也帮了我很大的忙。谢谢