我试图制作一个包含两个功能的按钮:
function bigfont()
{var font_is_small = true
if (font_is_small = true)
{document.getElementById('one').className=
document.getElementById('one').className.replace("font1","font2");
document.getElementById('two').className=
document.getElementById('two').className.replace("font1","font2");
document.getElementById('three').className=
document.getElementById('three').className.replace("font1","font2");
document.getElementById('four').className=
document.getElementById('four').className.replace("font3","font4");
font_is_small = true;}
if(font_is_small = false)
{document.getElementById('one').className=
document.getElementById('one').className.replace("font2","font1");
document.getElementById('two').className=
document.getElementById('two').className.replace("font2","font1");
document.getElementById('three').className=
document.getElementById('three').className.replace("font2","font1");
document.getElementById('four').className=
document.getElementById('four').className.replace("font4","font3");
font_is_small = true;}}
但变量并没有改变。有人能帮助我吗?
答案 0 :(得分:4)
要将布尔值更改为其相反的值,您可以使用否定(!
),例如x = !x
表示"如果&{34}将x
设置为false
39;如果它是假的,那就是true
"
如果希望函数在小字体和大字体之间切换,最简单的方法是将te变量放在函数之外:
http://jsfiddle.net/zvoeLu9p/
var font_is_small = true;
function bigfont()
{
font_is_small = !font_is_small; // switch the boolean
if (font_is_small){ // no need for == true
document.body.className=
document.body.className.replace("font1","font2");
}
else { // no need for if condition
document.body.className=
document.body.className.replace("font2","font1");
}
}
答案 1 :(得分:1)
但是你必须将变量font_is_small设置为true,而你必须在代码中将其更改为false。
答案 2 :(得分:0)
创建和分配变量的位置,if(=表示赋值)中的等价,以及在BOTH if语句中将其设置为true。 ......试试......
var font_is_small = true;
根据您的用法,font_is_small应该是全局的,不能传入或在函数内部创建。
function bigfont() {
if (font_is_small === true) {
document.getElementById('one').className="font2":
document.getElementById('two').className="font2":
document.getElementById('three').className="font2":
document.getElementById('four').className="font2":
font_is_small = false;
}
if(font_is_small === false) {
document.getElementById('one').className="font1":
document.getElementById('two').className="font1":
document.getElementById('three').className="font1":
document.getElementById('four').className="font1":
font_is_small = true;
}
}
此外,替换并没有做任何重要的事情......我在解决这个问题后想出了两行格式......这个任务更简单,更清晰。
答案 3 :(得分:0)
您遇到语法错误:
{var font_is_small = true; //<---- right here you forgot a ;
if (font_is_small == true)//<-- you forgot equal to operators on all if statements
这是什么???!??
document.getElementById('two').className= //<--- blank? the program will be doing this:
document.getElementById('one').className=document.getElementById('one').className.replace("font2","font1");