1

ボタンを押すだけで、テキスト領域内のテキストを太字にするかどうかを切り替えることができるようにしようとしています。私は次のコードを持っています:

function bold()
{
    var ta = document.getElementById("textArea");

    if(ta.style.fontWeight == "normal"){
        ta.style.fontWeight = "bold";
    }
    else{
        ta.style.fontWeight = "normal";
    }
}

ボタンを押しても、最初は何も起こりません。しかし、もう一度押すと、完全に動作します。デバッガーで実行すると、cssでテキスト領域が通常に設定されているにもかかわらず、変数「ta」は最初は「」に等しくなり、2回目は「通常」になります。

何か案は?

ありがとう

4

2 に答える 2

2

したがって、これが発生する理由はta.style、CSSからのスタイルに関する情報がないtextarea要素のstyle属性にアクセスしているためです。このようにテキストエリアを書くことができ、それはあなたが持っているもので動作するはずです:

<textarea id="textArea" style="font-weight:normal"></textarea>

しかし、私はあなたがあなたのjsでこれらの線に沿って何かをすることをお勧めします:

function bold()
{
    var ta = document.getElementById("textArea");

    if(ta.style.fontWeight !== "bold"){
        ta.style.fontWeight = "bold";
    }
    else{
        ta.style.fontWeight = "normal";
    }
}

関数の名前をtoggleBold;)に変更することも役立つ場合があります。

于 2013-02-17T21:15:33.343 に答える
1

それと戦う代わりに、あなたの状態を変えるだけです:

if (ta.style.fontWeight == "normal" || ta.style.fontWeight === '') {
于 2013-02-17T21:09:23.903 に答える