2012-01-21 19 views
1

クリックすると空白のラップを追加または削除するトグルスイッチを作成しようとしています。Javascriptボタンを空白のラップ/ nowrapに切り替える

ラップしなければならないdivはIDとIDを持つことができないため、そのクラスを介して識別する必要があります。この場合は「テキスト」です。ページ全体で、そのクラスは一度しか使用されません。

私はこれをビルドしますが、動作しません。どこが間違っていますか?

<script> 
function togglew(){  
    if(document.getElementsByClassName("text")[0].style.whiteSpace == 'nowrap'){ 
     document.getElementsByClassName("text")[0].style.whiteSpace == 'normal'; 
    }else{ 
     document.getElementsByClassName("text")[0].style.whiteSpace == 'nowrap'; 
    } 
} 
</script> 

<a onclick="togglew('');">toggle wrap button</a> 
<br>---<br> 
<div style="width:500px;"> 
    <div class="text" style="overflow:auto;white-space:wrap">ssssssssssd fdfsdfsdf sdf sdf sdf sfd sdf sdf sdf ssdfdddddddddddf sdf sdf sdf sdfsd fsdf sdfsdf sdf sdfsd f</div> 
</div> 
+0

私は '通常の'の代わりに 'ラップ'を使用していました - :) thx – pherris

答えて

3

===としては、代入演算子ある比較演算子です。

ifの条件の中で、(==)と比較する必要があります。また、割り当てようとしているブロックの内側に(=);完全を期すため

if(document.getElementsByClassName("text")[0].style.whiteSpace == 'nowrap') 
{ 
    document.getElementsByClassName("text")[0].style.whiteSpace = 'normal'; 
} else { 
    document.getElementsByClassName("text")[0].style.whiteSpace = 'nowrap'; 
} 

は、また、オペレータが(==はオペランドが異なるタイプのものであれば強制を入力しない)の - 同じタイプであるチェック===比較演算子があります。詳細はWhich equals operator (== vs ===) should be used in JavaScript comparisons?をご覧ください。

+0

こんにちはマット、それは素晴らしい仕事! IEにはまだ問題があります。オブジェクトにはこのプロパティやメソッドがサポートされていません。どんな考えが間違っているのでしょうか? FFやChromeではうまく動作します。 –

+0

+1 [Here](http://jsfiddle.net/DeCdL/1/)は動作例です –

+0

@Boon: 'document.getElementsByClassName'は[IE <9]でサポートされていません(http://caniuse.com /#search = getElements) – Matt

関連する問題