jQueryを使用してテキスト整列のスタイルを動的に追加する方法


81

CSS 2.1に関する通常のIEのバグを修正しようとしていますが、要素のスタイルプロパティを変更して、カスタムのテキスト配置スタイルを追加する方法が必要です。

現在jQueryでは次のようなことができます

$(this).width() or $(this).height() 

しかし、これと同じアプローチでテキストを変更する良い方法を見つけることができないようです。

アイテムにはすでにクラスがあり、運が悪ければそのクラスにtext-alignを設定しました。クラスが定義された後、この要素にtext-align CSS属性を追加することは可能ですか?

私はこのようなものを持っています

$(this).css("text-align", "center"); 

幅を調整した直後、これをFirebugで表示した後、スタイルに設定されているプロパティは「width」のみであることがわかります。何か助けはありますか?

編集:

おっと-この質問への大きな回答!手元の問題に関するもう少し詳細:

jqGrid A3.5のjsソースを調整して、カスタムサブグリッド作業を実行しています。調整している実際のJSを以下に示します(上記の例で「this」を使用して申し訳ありませんが、これをシンプルに保ちたいと思いました。簡潔)

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');

私は今日もこの問題に取り組み続け、この奇妙な問題について私の痛みを感じている人のために最終的な解決策を投稿します。

回答:


166

ドキュメントが示すように、あなたは正しい考えを持っています:

http://docs.jquery.com/CSS/css#namevalue

これをクラスまたはIDで正しく識別しますか?

たとえば、クラスがmyElementClassの場合

$('.myElementClass').css('text-align','center');

また、私はしばらくFirebugを使用していませんが、htmlではなくdomを見ていますか?ソースはjavascriptによって変更されませんが、domは変更されます。domタブを見て、変更が適用されたかどうかを確認します。


1
動作するはずですが、以前に設定されたwidth()と組み合わせて使用​​すると、失敗するようです。答えは、jqueryチェーンを使用することです。
Steerpike 2009年

42

次のことを試して、要素にインラインスタイルを追加することもできます。

$(this).attr('style', 'text-align: center');

これにより、他のスタイリングルールが機能すると思われるものを上書きしないようにする必要があります。通常、インラインスタイルが優先されると思います。

編集: また、あなたを助けるかもしれない別のツールはJash(http://www.billyreisinger.com/jash/)です。javascriptコマンドプロンプトが表示されるので、javascriptステートメントを簡単にテストし、適切な要素などを選択していることを確認できます。


12

普段使っています

$(this).css({
    "textAlign":"center",
    "secondCSSProperty":"value" 
});

お役に立てば幸いです


2

「text-align」の代わりに「textAlign」を使用する必要があると思います。


6
これは、バニラJavaScriptDOM操作を使用してスタイルを設定する場合にのみ当てはまります。jQuery css()は、代わりに実際のcssキーワードを使用します。
garrow 2009年

2

面白い。テスト版を書いたときと同じ問題が発生しました。

解決策は、jqueryの機能を使用して連鎖して実行することです。

$(this).width(500).css("text-align", "center");

でも面白い発見。

ビットを展開するには、次の処理が行われていない作品

$(this).width(500);
$(this).css("text-align", "center");

幅だけがスタイルに設定されます。上で提案したように、2つを連鎖させることはうまくいくようです。


1

$(this).css("text-align", "center"); 動作するはずです。「this」が実際にtext-alignスタイルを設定しようとしている要素であることを確認してください。


0

正しい?

<script>
$( "#box" ).one( "click", function() {
  $( this ).css( "width", "+=200" );
});
</script>

0
<!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>

0
 $(this).css({'text-align':'center'}); 

これの代わりにクラス名とIDを使用できます

$('.classname').css({'text-align':'center'});

または

$('#id').css({'text-align':'center'});

-1

以下がhtml段落タグであると仮定します。

<p style="background-color:#ff0000">This is a paragraph.</p>

jqueryの段落の色を変更したいと思います。

クライアント側のコードは次のようになります。

<script>
$(document).ready(function(){
    $("p").css("background-color", "yellow");
});
</script> 

これは、与えられた答えを何らかの形で改善しますか?
ニコハース2018

-1
function add_question(){var count = document.getElementById( "nofquest")。value; var container = document.getElementById( "container"); //コンテナの以前の内容をクリアしますwhile(container.hasChildNodes()){container.removeChild(container.lastChild); } for(i = 1; i

テキストボックスの中心を設定する方法


1.フォーマット2.説明をお願いします。
jhpratt 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.