2012-01-21 64 views
1

我試圖構建一個切換開關,點擊添加或刪除白色空間包裝。Javascript切換按鈕到白色空間包裝/ nowrap

必須包裝的div不能有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瀏覽器仍然存在問題,我在那裏說錯誤:Object不支持這個屬性或方法。任何想法出了什麼問題?在FF和Chrome中,它工作正常。 –

+0

+1 [Here](http://jsfiddle.net/DeCdL/1/)是一個工作示例 –

+0

@Boon:'document.getElementsByClassName' [不支持IE <9](http://caniuse.com /#search = getElements) – Matt