2015-02-17 7 views
0

Я использую JQuery, чтобы попытаться получить значение top из css.Получить значение CSS в JQuery

Однако, где я прочитал много вещей, говоря, что $('modal').css('top') вернет строку «40», она на самом деле возвращает «40 пикселей».

Есть ли способ получить это в целочисленном формате. Компонент еще не отображается на странице, я пытаюсь найти позицию по умолчанию, поэтому я могу установить ее с помощью JS. Это означает, что положение(). Top = 0 и т.д.

ответ

1

Использование

parseInt($('.modal').css('top'), 10); 

Работа Fiddle

Так что не будет рассматривать точек или что-нибудь

Я надеюсь, что модель является класс или идентификатор, а не пустой

+0

Возможно ли, что значение 'top' будет возвращено чем-либо, кроме десятичного? – alex

+0

Я пробовал это, и он вернулся «NaN». Modal - это элемент, переданный в funtion, поэтому ti всегда указывает на правильный элемент. –

+0

Проблема: я скопировал ваш код и забыл удалить «из модального бита, а my - объявленная переменная. Глупость. Это решение, которое я буду использовать, потому что оно немного опрятно. Cheers –

1

Вы можете использовать $.fn.position(), чтобы сделать это ...

$('modal').position().top 

Если это не работает в вашей ситуации, вы могли бы использовать parseInt() или parseFloat(), потому что некоторые браузеры будут дать вам частичные части пикселей в некоторых ситуациях.

+0

Компонент представляет собой всплывающее окно, через которое до сих пор не вынесено, так что это возвращается 0. –

+0

@Alex Пожалуйста, вы думаете, что вы могли бы мне помочь с этим вопросом http://goo.gl/Yl5qIi – Axel

0

Одно решение предусматривает замену регулярных выражений и листы на число:

var topInt = Number($('modal').css('top').replace(/px$/,'')); 

http://jsfiddle.net/6n8xu0gf/1/

+0

Вы передаете строку 'replace()', а не регулярное выражение, поэтому '' 'будет обрабатываться буквально. – alex

+0

Спасибо, сэр! – bgoldst

Смежные вопросы