#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
есть ли короткий способ выполнения этой серии jquery ниже, чтобы извлечь каждое значение поля.
var x = jQuery('#widget-container').css('margin-top');
var y = jQuery('#widget-container').css('margin-bottom');
var z = jQuery('#widget-container').css('margin-right');
var a = jQuery('#widget-container').css('margin-left');
Ответ №1:
Вы можете использовать margin
css напрямую, чтобы получить top, right, bottom and left
поля соответственно.
var margin = jQuery("#widget-container").css("margin");
alert(margin);
Редактировать : приведенный выше jQuery может работать, а может и не работать в firefox, потому что, если свойство css (в данном случае margin) не задано в css элемента явно, оно не поддерживает сокращенный css для этого свойства. Чтобы добиться того же в Firefox, мы можем выполнить следующий обходной путь :
var marginArray = ['Top','Right','Bottom','Left'];
for(var i=0;i<marginArray.length;i )
{
alert(jQuery("#widget-container").css("margin" marginArray[i]));
}
Комментарии:
1. Это не работает, когда каждое поле задано отдельно.
2. вы проверяли мой jsfiddle?
3. Я вижу это. он не отображает никакого значения полей.
4. Отображается ’10px 30px 40px 20px’ .. какой браузер вы используете. И, как сказал @AnoopJoshi, можете ли вы поделиться скриптом, который не работает с отдельным полем?
5. @BhushanKawadkar Подумайте, если у вас есть целые значения полей, как бы вы распределили их по конкретным переменным.
Ответ №2:
Вы можете сделать что-то вроде этого,
var =$("#widget-container").css("margin").split(" ");
Возвращаемое значение будет в следующем порядке: top, right, bottom, left
в массиве.
Комментарии:
1. Это не работает, когда каждое поле задано отдельно.
2. @jacelysh ты вообще проверял скрипку?
3. Оно возвращает значение только при использовании сокращения «margin».
4. @jacelysh Можете ли вы создать скрипку, в которой есть доказательство того, что «Это не работает, когда каждое поле задано отдельно»
5. Это не гарантирует работу во всех браузерах. Из API : «Извлечение сокращенных свойств CSS (например, margin, background, border), хотя они и работают в некоторых браузерах, не гарантируется». И даже в браузерах, которые его поддерживают, он может возвращать сокращение из двух значений. Попробуйте с Chrome: jsfiddle.net/ubBSp/7