首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取css顶值为数字,而不是字符串?

获取css顶值为数字,而不是字符串?
EN

Stack Overflow用户
提问于 2008-12-27 17:04:02
回答 2查看 115.9K关注 0票数 126

在jQuery中,您可以以数字形式获得相对于父元素的顶部位置,但如果在px中设置了该值,则不能以数字形式获取顶端位置。

假设我有以下内容:

代码语言:javascript
复制
#elem{
  position:relative;
  top:10px;
 }
代码语言:javascript
复制
<div>
  Bla text bla this takes op vertical space....
  <div id='elem'>bla</div>
</div>
代码语言:javascript
复制
$('#elem').position().top; //Returns the number (10+(the vertical space took by the text))
$('#elem').css('top'); //Returns the string '10px'

但我希望将css top属性设置为数字10

如何做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2012-03-28 02:04:56

一个基于M4N答案的jQuery插件

代码语言:javascript
复制
jQuery.fn.cssNumber = function(prop){
    var v = parseInt(this.css(prop),10);
    return isNaN(v) ? 0 : v;
};

因此,您只需使用此方法来获取数值

代码语言:javascript
复制
$("#logo").cssNumber("top")
票数 25
EN

Stack Overflow用户

发布于 2013-09-01 20:55:33

基于Ivan Castellanos的答案(基于M4N的答案)的一个稍微更实用/更有效的插件。使用|| 0会在不执行测试步骤的情况下将Nan转换为0。

我还提供了float和int的变体,以适应预期的用途:

代码语言:javascript
复制
jQuery.fn.cssInt = function (prop) {
    return parseInt(this.css(prop), 10) || 0;
};

jQuery.fn.cssFloat = function (prop) {
    return parseFloat(this.css(prop)) || 0;
};

用法:

代码语言:javascript
复制
$('#elem').cssInt('top');    // e.g. returns 123 as an int
$('#elem').cssFloat('top');  // e.g. Returns 123.45 as a float

http://jsfiddle.net/TrueBlueAussie/E5LTu/上测试小提琴

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/395163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档