好的,我无法一字一句地描述它,所以我将使用一个例子:
function f1() {
document.write(vavariable)
};
function f2(){
if(variablefot)
document.body.style.color='red';
};
variablefot = false;
variablefotok = variablefot = true;
variable1 = 'text1' +variablefotok;
variable2 = 'text2';
vavariable = variable1
现在我使用<script>f1();f2();</script>
和vavariable = variable1
我应该得到红色文字1
但我得到红色text1 + text'true'
当我使用vavariable2时,我想获得没有体色红色的text2 但我仍然得到RED text2
我试图用功能来做,但它也不起作用。
请帮助我让它工作。我已经失去了几个小时已经尝试过。谢谢!
答案 0 :(得分:1)
Variablefotok等于true,所以这就是为什么写的是真的。
要更改正文颜色,只需使用f2功能,但将颜色更改回默认值,黑色。基本上,您可以将文本写入文档并根据变量每次更改颜色,或者只需将HTML代码写入文档,如<span style="color:red">text</span>
或<span style="color:black">text</span>
。您也可以使用类而不是内联CSS声明。这适用于那种情况。
function write(){
document.write(text);
document.body.style.color = color;
}
variable1 = 'text1';
variable2 = 'text2';
使用该代码,您只需执行以下功能即可。如果您将所有文本存储在变量中,您也可以根据需要使用它。
write(variable1, 'red');
write(variable2, 'black');
write(variable3, 'green');
write(variable4, 'blue');
write(variable5, 'brown');
write(variable6, 'yellow');
答案 1 :(得分:0)
嗯,首先:
variablefotok = variablefot=true;
首先将true指定给variablefot,然后指定给variablefotok。因此两者都是真的。
variable1 = 'text1' +variablefotok;
由于variablefotok为true
,因此variable1现为'text1true'
。因此变量最终将为'text1true'
。
function f2(){
if(variablefot)
document.body.style.color='red';
};
如果variablefot = true,将(当被调用时)将body的颜色更改为红色。由于这个是真的,无论变量的值如何,它总是会将身体的颜色变为红色。
答案 2 :(得分:0)
以下是您拥有的内容,或多或少:http://jsfiddle.net/ySqGg/
我应该得到红色文字1但是我得到红色文字1 +文字'真'
这是因为您正在向字符串“添加”true
。
variablefotok = variablefot=true;
// variablefotok and variablefofot are now both set to true
variable1 = 'text1' +variablefotok;
// same as: variable1 = 'text1' + true;
// `true` is converted into a string so it can be combined with a string
// variable1 is now `text1true`
那为什么会这样呢?好吧,让我们先看一行:
variablefot = false;
variablefotok = variablefot = true;
这可以澄清如下:
variablefot = false;
variablefotok = (variablefot = true);
首先,您将variablefot
设置为false
。然后在下一行中将其设置为true
。赋值语句返回指定的值,因此您也将variablefotok
设置为true。
之后f2
运行,variablefot
现在为真,你变红了。
你的意思是进行比较吗?
variablefotok = (variablefot == true);
通过此更改,文本不变为红色,因为variablefot
仍为false
。 http://jsfiddle.net/ySqGg/1/
但你很少需要与true
进行比较。您可以简单地使用变量,因为它是true
或false
。
variablefotok = variablefot;
哪个也不会变成红色。请参阅:http://jsfiddle.net/ySqGg/2/
这很容易回答,因为您设置了很多变量,但只有使用一个用于任何usefult(variablefot
中的f2
)。如果我是你,我会考虑你有哪些变量,并确保你真的需要每个变量,然后删除其他变量。