Próbuję poprawić typowe błędy IE dotyczące CSS 2.1 i potrzebuję sposobu na zmianę właściwości stylu elementów, aby dodać niestandardowy styl wyrównywania tekstu.
Obecnie w jQuery możesz zrobić coś takiego jak
$(this).width() or $(this).height()
ale wydaje mi się, że nie mogę znaleźć dobrego sposobu na zmianę wyrównania tekstu za pomocą tego samego podejścia.
Przedmiot ma już klasę i ustawiłem wyrównanie tekstu w tej klasie bez powodzenia. Czy można po prostu dodać atrybut CSS wyrównywania tekstu do tego elementu po zdefiniowaniu klasy?
Mam coś takiego
$(this).css("text-align", "center");
zaraz po dostosowaniu szerokości i po obejrzeniu tego w programie firebug widzę tylko „width” jest jedyną ustawioną właściwością stylu. Jakaś pomoc?
EDYTOWAĆ:
Ooo - wielka odpowiedź na to pytanie! Trochę więcej szczegółów na temat problemu:
Poprawiam źródło js dla jqGrid A3.5, aby wykonać niestandardową pracę z podsiatkami, a rzeczywisty JS, który poprawiam, jest pokazany poniżej (przepraszam za użycie "this" w moich przykładach powyżej, ale chciałem zachować to proste dla zwięzłość)
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);
}
Wypróbowałem oba poniższe (z podanych odpowiedzi) bez powodzenia.
$(tddiv).width(ts.p.subGridModel[0].width[i]).attr('style', 'text-align: center');
I
$(tddiv).width(ts.p.subGridModel[0].width[i]).css('text-align', 'center');
Będę nadal pracować nad tym problemem dzisiaj i opublikuję ostateczne rozwiązanie dla każdego, kto odczuwa mój ból związany z tym dziwnym problemem.