<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>654613</title> <style type="text/css"> .one{ color:red; background-color:green; font-size:20px; width=300px; height=100px; } .two{ color:blue; background-color:pink; font-size:50px; width=500px; height=150px; } </style> <body> <div id="div1" style="text-align:center;"> <p>样式可以转换,快来试试</p><br /> <input name="button" type="button" onclick="typeform()" value="点我转换" /> </div> <script> var mm=document.getElementById("div1"); mm.className="one" document.write("现在的样式ID是:"+mm.className) function typeform() { if(mm.className="one") { mm.className="two" } else { mm.className="one" } } </script> </body> </html>
只能点一次,再点就没反应了。当我的div样式是two时,应该触发else了呀?同时document.write的文字也不能改变(一直是one),难道不应该随着className变化吗。
if 括号里边应该用比较运算符== 你用的是赋值运算符 mm.className永远都是one
至于为当前样式是one 是因为函数中没有返回值(怎么设置暂时还没学到)
function typeform()
{
if(mm.className!="one")
{
mm.className="one"
}
else
{
mm.className="two"
}
}
改成这样
使用三目运算符 ?:
含义:如果p2当前的类名=’two',那么就设置为‘one’,如果不是等于‘two',就设置为’two'
function modify(){
var p2 = document.getElementById("p2");
p2.className=p2.className==='two'?'one':'two';
}
因为输出样式那条语句只在页面加载时执行了一次,鼠标点击改变样式后,并没有输出样式,具体看你代码里的函数。