Мне нужно сделать численный расчет на основе свойств CSS. Однако, когда я использую это, чтобы получить информацию:
$(this).css('marginBottom')
возвращает значение «10px». Есть ли хитрость в том, чтобы просто получить числовую часть значения, независимо от того, является оно px
или %
или em
или иным?
javascript
jquery
css
parsing
Тим Шейнер
источник
источник
/[^-\d\.]/g
parseInt
будет автоматически игнорировать единицы.Например:
источник
parseInt
чтобы учитывать случай, когда вы получаете нецелое значение - как в ответе maximelebreton .При использовании метода replace значение css является строкой, а не числом.
Этот метод более чистый, простой и возвращает число:
источник
%
,em
)Даже если marginBottom определен в em, значение внутри parseFloat выше будет в px, так как это вычисляемое свойство CSS.
источник
источник
px
но даны,em
вам нужно конвертировать.Я использую простой плагин jQuery, чтобы вернуть числовое значение любого отдельного свойства CSS.
Это относится
parseFloat
к значению, возвращаемому методом jQuery по умолчаниюcss
.Определение плагина:
Использование:
источник
Предположим, у вас установлено свойство margin-bottom 20px / 20% / 20em. Чтобы получить значение в виде числа, есть два варианта:
Опция 1:
Функция parseInt () анализирует строку и возвращает целое число. Не изменяйте 10 в приведенной выше функции (известной как «основание»), если вы не знаете, что делаете.
Пример вывода будет: 20 (если для поля установлено нижнее поле в пикселях) для%, и em будет выводить относительное число на основе текущего размера родительского элемента / шрифта.
Вариант 2 (лично я предпочитаю этот вариант)
Пример вывода будет: 20 (если для поля установлено нижнее поле в пикселях) для%, и em будет выводить относительное число на основе текущего размера родительского элемента / шрифта.
Функция parseFloat () анализирует строку и возвращает число с плавающей запятой.
Функция parseFloat () определяет, является ли первый символ в указанной строке числом. Если это так, он анализирует строку, пока не достигнет конца числа, и возвращает число как число, а не как строку.
Преимущество варианта 2 состоит в том, что если вы получите возвращенные десятичные числа (например, 20.32322px), вы получите возвращаемое число со значениями после десятичной точки. Полезно, если вам нужно вернуть конкретные числа, например, если нижнее поле установлено в em или %
источник
parseint
будет обрезать любые десятичные значения (например,1.5em
дает1
).Попробуйте
replace
функцию с регулярным выражением, напримеристочник
Идти за:
источник
margin
это негативом или позитивом!Самый простой способ получить ширину элемента без единиц измерения:
Источник: https://api.jquery.com/width/#width2
источник
Вы можете реализовать этот очень простой плагин jQuery :
Определение плагина:
Он устойчив к
NaN
значениям, которые могут встречаться в старой версии IE (будет возвращаться0
вместо)Использование:
Наслаждайтесь! :)
источник
var result; return isNaN(result = parseFloat(this.css(p))) ? 0 : result;
Для улучшения принятого ответа используйте это:
источник
Если это только для «px», вы также можете использовать:
источник
Следует удалить единицы, сохраняя при этом десятичные дроби.
источник
использование
которые возвращают массив. Первый индекс возвращает значение нижней границы поля (например, 20 для 20 пикселей), а второй индекс возвращает единицу нижней части поля (пример px для 20 пикселей).
источник