使用jQuery获取不带px的左右值

4

可能是重复的问题:
Javascript或jQuery中的Left()函数

我有一个div,我给它添加了以下样式。

#MainDiv
{
    position:relative;    
    left:150px;
    right:150px;

}

我希望根据左右参数来给这个 #MainDiv 的宽度。我可以像下面这样设置:

#MainDiv 的宽度 = 右侧参数 - 左侧参数。

$("#MainDiv").width($("#MainDiv").width() - $("#MainDiv").css("left") - $("#MainDiv").css("right"));

但是在弹出框中,$("#MainDiv").css("left") 给了我 150px。我只需要 150。为此,我使用了offset属性,$("#MainDiv").offset().left$("#MainDiv").offset().right。左侧的值为158,右侧的值为undefinedoffset 在这种情况下不正确吗?我应该如何去掉值末尾的px并获得准确的值?


@所有人.. 这个问题可能与那个重复.. 但是我们可以实现的方法数比那个问题多。感谢大家。 - Mihir
5个回答

10

执行:

var left = parseInt($("#MainDiv").css("left"), 10);

如果有人想知道,这里的10是指“十进制”或半径,显然在JavaScript中并不总是默认的。 - Jeremy L.

3

尝试使用jQuery的position()函数

 $(element).position().top;
 $(element).position().left;

1
parseInt( $("#MainDiv").css("left").replace('px', '') );

0

试着用这个:

$("#MainDiv").css("left").slice(0, -2);
$("#MainDiv").css("right").slice(0, -2);

0

您不需要删除 px。您的脚本有误。这应该能帮助您-

演示

<div id="MainDiv"></div>

CSS

#MainDiv
{
    position:relative;    
    left:60px;
    right:50px;
    border:1px solid;
    height:10px;
    background-color: yellow;
}

jQuery

$("document").ready(function() {
    $("#MainDiv").width(parseInt($("#MainDiv").css("left")) - parseInt($("#MainDiv").css("right")));
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接