2012-01-21 39 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