jQuery / Javascript - Як перетворити значення пікселя (20 пікселів) у числове значення (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
З кожним днем ​​я люблю тебе все більше і більше javascript
Джеймс Вестгейт,

1
Це не працює для "20pt" або "20em". parseInt ("20pt") == 20! Це може бути все, що потрібно плакату, але я хотів би, наприклад, використовувати X ("20em") і повертати справжню ширину в пікселях.
Лоуренс І. Сіден

2
@lsiden: це працює. parseInt("20em", 10) === 20і parseInt("20pt", 10) === 20. Не соромтеся вставити будь-який вираз у консоль улюбленого веб-переглядача або подивіться цей дуже короткий приклад . Яка б проблема у вас не лежала в іншому коді.
Енді Е

6
Стосовно, parseIntфункція фактично не враховуватиме будь-які нецілі символи, додані до кінця рядка цілих символів. parseInt('234sdfsdf') == 234
Кріс В.

3
@AndyE: Isiden говорив, що 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 Dev консолі
Thomas

-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.