当前位置:  开发笔记 > 编程语言 > 正文

获取css最高值作为数字而不是字符串?

如何解决《获取css最高值作为数字而不是字符串?》经验,为你挑选了3个好方法。

在jQuery中,您可以将相对于父级的顶部位置作为数字,但如果设置了,则无法将css顶部值作为数字px.
说我有以下内容:

#elem{
  position:relative;
  top:10px;
 }
Bla text bla this takes op vertical space....
bla
$('#elem').position().top; //Returns the number (10+(the vertical space took by the text))
$('#elem').css('top'); //Returns the string '10px'

但我希望将css top属性作为数字10.
如何实现这一目标?



1> M4N..:

您可以使用parseInt()函数将字符串转换为数字,例如:

parseInt($('#elem').css('top'));

更新:(如Ben所建议的):你也应该给出基数:

parseInt($('#elem').css('top'), 10);

强制将其解析为十进制数,否则以"0"开头的字符串可能会被解析为八进制数(可能取决于所使用的浏览器).


你也应该给出基数:parseInt($('#elem').css('top'),10); 强制将其解析为基数10,否则以"0"开头的字符串将在基数8中解析.
它可能是一个浮点数,所以最好使用parseFloat.

2> Ivan Castell..:

一个基于M4N答案的jQuery插件

jQuery.fn.cssNumber = function(prop){
    var v = parseInt(this.css(prop),10);
    return isNaN(v) ? 0 : v;
};

那么您只需使用此方法获取数字值

$("#logo").cssNumber("top")



3> Gone Coding..:

基于Ivan Castellanos的答案(基于M4N的答案),这是一个稍微实用/高效的插件.使用|| 0将在没有测试步骤的情况下将Nan转换为0.

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

jQuery.fn.cssInt = function (prop) {
    return parseInt(this.css(prop), 10) || 0;
};

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

用法:

$('#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/上测试小提琴

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有