jQuery / Javascript - Как преобразовать значение пикселя (20 пикселей) в числовое значение (20)


101

Я знаю, что в jQuery есть вспомогательный метод для разбора строк единиц на числа. Какой для этого нужен метод jQuery?

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

parseInt (а, 10); вернуть NaN, если a - строка
vanduc1102

Ответы:


185

Для этого не требуется jQuery, Plain Ol 'JS (tm) сделает вас,

parseInt(a, 10);

4
Каждый день во всех отношениях я люблю тебя все больше и больше javascript
Джеймс Вестгейт,

1
Это не сработает для "20pt" или "20em". parseInt ("20pt") == 20! Это может быть все, что нужно плакату, но я бы хотел иметь возможность использовать, например, X («20em») и вернуть истинную ширину в пикселях.
Лоуренс И. Сиден,

2
@lsiden: это работает. parseInt("20em", 10) === 20и parseInt("20pt", 10) === 20. Не стесняйтесь вставить любое выражение в консоль вашего любимого браузера или посмотрите этот очень короткий пример . Какая бы проблема у вас ни возникала, она находится в другом месте вашего кода.
Andy E

6
Примечание: parseIntфункция фактически игнорирует любые нецелочисленные символы, добавленные в конец строки целочисленных символов. parseInt('234sdfsdf') == 234
Крис В.

3
@AndyE: Исиден говорил, что parseInt не будет преобразовывать значения em (или pt, или другие) в эквивалентные значения пикселей, что может понадобиться некоторым людям.
LeartS

30

В более общем плане parseFloatбудет правильно обрабатывать числа с плавающей запятой, тогда как parseIntзначащие цифры могут потеряться незаметно:

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



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 Chrome
Томас

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

        });
    });

При попытке идентифицировать переменную x со значением пикселя I с помощью jquery я помещаю + = в кавычки. Вместо ширины: '+ = x', что не работает, потому что он считает, что x - это строка, а не число. Надеюсь, это поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.