2016-08-29 1 views
0
var divfoo=document.getElementById("foo"); 

divfoo.className=" css-class css-class2 "; 
divfoo.className=divfoo.className.replace(" css-class2 ", ""); 

上記のコードが機能します。 replaceメソッドを使っている上記コードの最後の行を変更したいと思います。上記のようなコードを書くのではなく、なぜ私は以下のように書かれたときにうまくいかないのか知りたいと思います。element.className.replaceメソッドを使用して要素のクラス名を削除する

var divfoo=document.getElementById("foo"); 

divfoo.className=" css-class css-class2 "; 
divfoo.className.replace(" css-class2 ", ""); 

なぜ1は、なぜ私たちは、上記のコードがした直接のような方法を適用することはできません「divfoo.className」同じ「divfoo.className」への方法を置き換える適用するために割り当てる必要がありますか?

これは私が論理的でないためにjavascriptを嫌いなのですか?

enter code here 

答えて

1

Element.classNameクラスのHTML属性の平野文字列表現です。

String.replaceメソッドは、呼び出されたソース文字列を変更せず、置換プロシージャの結果を返します。

もっと論理的/機能的なアプローチが必要な場合は、Element.classListインターフェイス、つまりremoveメソッドを参照してください。

+0

ありがとうございました。 – Naresh

関連する問題