jQuery/Javascript-如何将像素值(20px)转换为数字值(20)
我知道jQuery有一个助手方法可以将单位字符串解析为数字。jQuery方法是如何做到这一点的jQuery/Javascript-如何将像素值(20px)转换为数字值(20),javascript,jquery,Javascript,Jquery,我知道jQuery有一个助手方法可以将单位字符串解析为数字。jQuery方法是如何做到这一点的 var a = "20px"; var b = 20; var c = $.parseMethod(a) + b; 这不需要jQuery,可以吗 parseInt(a, 10); 虽然这与jQuery有什么关系,但我不知道更一般地说,parseFloat将正确处理浮点数,而parseInt可能会自动丢失有效数字: parseFloat('20.954544px') > 20.954544 p
var a = "20px";
var b = 20;
var c = $.parseMethod(a) + b;
这不需要jQuery,可以吗
parseInt(a, 10);
虽然这与jQuery有什么关系,但我不知道更一般地说,
parseFloat
将正确处理浮点数,而parseInt
可能会自动丢失有效数字:
parseFloat('20.954544px')
> 20.954544
parseInt('20.954544px')
> 20
$(文档).ready(函数(){
$(“#btnW1”)。单击(函数(){
$(“#d1”)。制作动画({
宽度:“+=”+x,
});
});
当尝试使用jquery用像素值I标识变量x时,我将+=放在引号中。而不是使用宽度:'+=x',这不起作用,因为它认为x是一个字符串而不是一个数字。希望这会有所帮助。很抱歉这样做,但是:
var bar = "16px";
var foo = parseInt(bar, 10); // Doesn't work! Output is always 16px
// and
var foo = Number(s.replace(/px$/, '')); // No more!
每一天,我都爱你越来越多的Javascript这对“20pt”或“20em”不起作用。parseInt(“20pt”)==20!这可能是海报所需要的全部,但我希望能够使用X(“20em”)作为例子,以像素为单位恢复真实宽度。@lsiden:它确实起作用。
parseInt(“20em”,10)==20
和parseInt(“20pt”,10)===20
。您可以将任意一个表达式粘贴到您喜爱的浏览器控制台中,或者查看。您遇到的任何问题都存在于代码的其他地方。附带说明,parseInt
函数实际上会忽略附加到整数值字符串末尾的任何非整数值字符。parseInt('234sdfsdf'))==234
@AndyE:Isiden说parseInt不会将em值(或pt或其他值)转换为等效像素值,这是一些人可能需要的。parseInt(a,10);如果a是stringparseInt('16px',10),则返回NaN;在Google Chrome开发控制台中为我工作
parseFloat('20.954544px')
> 20.954544
parseInt('20.954544px')
> 20
$(document).ready(function(){<br>
$("#btnW1").click(function(){<br>
$("#d1").animate({<br>
width: "+=" + x,
});
});
var bar = "16px";
var foo = parseInt(bar, 10); // Doesn't work! Output is always 16px
// and
var foo = Number(s.replace(/px$/, '')); // No more!