在jQuery中,您可以以数字形式获得相对于父元素的顶部位置,但如果在px
中设置了该值,则不能以数字形式获取顶端位置。
假设我有以下内容:
#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
。
如何做到这一点呢?
发布于 2012-03-28 02:04:56
一个基于M4N答案的jQuery插件
jQuery.fn.cssNumber = function(prop){
var v = parseInt(this.css(prop),10);
return isNaN(v) ? 0 : v;
};
因此,您只需使用此方法来获取数值
$("#logo").cssNumber("top")
发布于 2013-09-01 20:55:33
基于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
https://stackoverflow.com/questions/395163
复制相似问题