Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/Javascript-如何将像素值(20px)转换为数字值(20)_Javascript_Jquery - Fatal编程技术网

jQuery/Javascript-如何将像素值(20px)转换为数字值(20)

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

我知道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
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!