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

新手上路,请多包涵

在 jQuery 中,您可以获得相对于父级的顶部位置作为数字,但如果它在 px 中设置,则无法将 css 顶部值作为数字。

说我有以下内容:

 #elem{
  position:relative;
  top:10px;
 }

 <div>
  Bla text bla this takes op vertical space....
  <div id='elem'>bla</div>
</div>

 $('#elem').position().top; //Returns the number (10+(the vertical space took by the text))
$('#elem').css('top'); //Returns the string '10px'

但我想让 css top 属性作为数字 10

如何实现这一目标?

原文由 Pim Jager 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 564
2 个回答

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

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

更新:( 按照本的建议):你也应该给出基数:

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

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

原文由 M4N 发布,翻译遵循 CC BY-SA 2.5 许可协议

基于 M4N 答案的 jQuery 插件

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

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

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

原文由 Ivan Castellanos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏