Как динамически добавить стиль для выравнивания текста с помощью jQuery
Я пытаюсь исправить Обычные ошибки IE вокруг CSS 2.1 и нужен способ изменить свойства стиля элементов, чтобы добавить пользовательский стиль выравнивания текста.
в настоящее время в jQuery вы можете сделать что-то вроде
$(this).width() or $(this).height()
но я не могу найти хороший способ изменить текст-выровнять с этим же подходом.
у элемента уже есть класс, и я установил выравнивание текста в этом классе без везения. Можно ли просто добавить атрибут CSS выравнивания текста к этому элементу после того как класс определен?
у меня что-то вроде этого
$(this).css("text-align", "center");
сразу после настройки ширины и после просмотра этого в firebug я вижу, что только "ширина" является единственным свойством, установленным в стиле. Любой помочь?
EDIT:
Воу - большой ответ на этот вопрос! Немного больше деталей вокруг проблемы под рукой:
я настраиваю источник js для jqGrid A3.5 для выполнения некоторых пользовательских подсетей и фактических В JS я настройки показаны ниже (извините за "это" в моих примерах выше, но я хотел сделать это просто для краткости)
var subGridJson = function(sjxml, sbid) {
var tbl, trdiv, tddiv, result = "", i, cur, sgmap,
dummy = document.createElement("table");
tbl = document.createElement("tbody");
$(dummy).attr({ cellSpacing: "0", cellPadding: "0", border: "0" });
trdiv = document.createElement("tr");
for (i = 0; i < ts.p.subGridModel[0].name.length; i++) {
tddiv = document.createElement("th");
tddiv.className = "ui-state-default ui-th-column";
$(tddiv).html(ts.p.subGridModel[0].name[i]);
$(tddiv).width(ts.p.subGridModel[0].width[i]);
trdiv.appendChild(tddiv);
}
tbl.appendChild(trdiv);
}
Я пробовал оба ниже (из предоставленных ответов) без везения.
$(tddiv).width(ts.p.subGridModel[0].width[i]).attr('style', 'text-align: center');
и
$(tddiv).width(ts.p.subGridModel[0].width[i]).css('text-align', 'center');
Я буду продолжать работать над этим вопросом сегодня и оставить окончательное решение для тех, кто чувствует мою боль вокруг этого странного вопроса.
11 ответов
у вас есть правильная идея, как показывает документация:
http://docs.jquery.com/CSS/css#namevalue
вы уверены, что правильно идентифицируете это с class или id?
например, если ваш класс myElementClass
$('.myElementClass').css('text-align','center');
кроме того, я не работал с Firebug некоторое время, но вы смотрите на dom, а не на html? Ваш источник не изменяется javascript, но dom. Посмотрите на вкладке dom и посмотрите, были внесены изменения.
вы также можете попробовать следующее, Чтобы добавить встроенный стиль к элементу:
$(this).attr('style', 'text-align: center');
Это должно убедиться, что другие правила стиля не переопределяют то, что вы думали, будет работать. Я считаю, что встроенные стили обычно получают приоритет.
EDIT: Кроме того, другим инструментом, который может вам помочь, является Jash (http://www.billyreisinger.com/jash/). Он дает вам командную строку javascript, чтобы вы могли легко проверить операторы javascript и сделать конечно, вы выбираете правильный элемент и т. д.
Я обычно использую
$(this).css({
"textAlign":"center",
"secondCSSProperty":"value"
});
надеюсь, что это поможет
интересные. У меня та же проблема, что и у вас, когда я писал тестовую версию.
решение заключается в использовании способности jquery цепи и у:
$(this).width(500).css("text-align", "center");
интересные найти.
чтобы немного расширить, выполните следующие действия не работа
$(this).width(500);
$(this).css("text-align", "center");
и приводит только к ширине, устанавливаемой в стиле. Сцепление двух, как я предположил выше, похоже, работает.
$(this).css("text-align", "center");
должен работать, убедитесь, что " это " является элементом, который вы на самом деле пытаетесь установить стиль выравнивания текста.
правильно?
<script>
$( "#box" ).one( "click", function() {
$( this ).css( "width", "+=200" );
});
</script>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$this = $('h1');
$this.css('color','#3498db');
$this.css('text-align','center');
$this.css('border','1px solid #ededed');
});
</script>
</head>
<body>
<h1>Title</h1>
</body>
</html>
$(this).css({'text-align':'center'});
вы можете использовать имя класса и id вместо этого
$('.classname').css({'text-align':'center'});
или
$('#id').css({'text-align':'center'});
add_question функции (){ var count=документ.getElementById ("nofquest").значение; контейнер var = документ.метода getElementById("контейнер"); // Очистить предыдущее содержимое контейнера в то время (контейнер.hasChildNodes()) { контейнер.removeChild (контейнер.режима lastchild); } для (i=1; i
Как установить центр текстовых полей
предположим, что ниже приведен тег html-абзаца:
<p style="background-color:#ff0000">This is a paragraph.</p>
и мы хотим изменить цвет абзаца в jquery.
код на стороне клиента будет:
<script>
$(document).ready(function(){
$("p").css("background-color", "yellow");
});
</script>