jQuery / Javascript-픽셀 값 (20px)을 숫자 값 (20)으로 변환하는 방법


101

jQuery에는 단위 문자열을 숫자로 구문 분석하는 도우미 메서드가 있다는 것을 알고 있습니다. 이를 수행하는 jQuery 메소드는 무엇입니까?

var a = "20px";
var b = 20;
var c = $.parseMethod(a) + b;

parseInt (a, 10); 반환 NaN이는 경우 a는 문자열입니다
vanduc1102

답변:


184

이를 위해 jQuery가 필요하지 않습니다. Plain Ol 'JS (tm) 가 수행합니다.

parseInt(a, 10);

4
매일 매일 나는 당신을 점점 더 사랑하고 있습니다 자바 스크립트
James Westgate

1
"20pt"또는 "20em"에서는 작동하지 않습니다. parseInt ( "20pt") == 20! 이것이 포스터에 필요한 전부일 수 있지만, 예를 들어 X ( "20em")를 사용하여 픽셀 단위의 실제 너비를 되돌릴 수 있기를 바랍니다.
Lawrence I. Siden

2
@lsiden : 작동합니다. parseInt("20em", 10) === 20parseInt("20pt", 10) === 20. 원하는 브라우저의 콘솔에 표현식을 붙여 넣거나이 매우 짧은 예제를 참조하십시오 . 어떤 문제가 발생하든 코드의 다른 곳에 있습니다.
Andy E

6
참고로이 parseInt함수는 정수 문자열 끝에 추가 된 정수가 아닌 문자를 실제로 무시합니다. parseInt('234sdfsdf') == 234
Chris W.

3
@AndyE : Isiden은 parseInt가 동등한 픽셀 값에서 em 값 (또는 pt 또는 기타)을 변환하지 않을 것이라고 말했는데, 이는 일부 사람들이 필요할 수 있습니다.
LeartS 2014

30

보다 일반적으로 parseFloat부동 소수점 숫자를 올바르게 처리하는 반면 parseInt유효 숫자를 자동으로 잃을 수 있습니다.

parseFloat('20.954544px')
> 20.954544
parseInt('20.954544px')
> 20


5
$.parseMethod = function (s)
{
    return Number(s.replace(/px$/, ''));
};

이것이 jQuery와 어떤 관련이 있지만 모르겠습니다.


0

파헤쳐 서 미안하지만 :

var bar = "16px";

var foo = parseInt(bar, 10); // Doesn't work! Output is always 16px
// and
var foo = Number(s.replace(/px$/, '')); // No more!

parseInt ( '16px', 10); Google 크롬 개발 콘솔에서 나를 위해 일해주세요
Thomas

-2
$(document).ready(function(){<br>
    $("#btnW1").click(function(){<br>
        $("#d1").animate({<br>
            width: "+=" + x,

        });
    });

jquery를 사용하여 픽셀 값으로 변수 x를 식별하려고 할 때 + =를 따옴표로 묶었습니다. 너비 대신 : '+ = x', x가 숫자가 아닌 문자열이라고 생각하기 때문에 작동하지 않습니다. 도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.