0

所以,我有一些奇怪的原因不起作用的代码。它的任务是,更改id 为IF变量的class元素的属性等于 4、5 或 6 (星期五、星期六、星期日), 我还希望在. 另外,我确定问题不在IF语句中,因为代码甚至不会执行blogtxt dayhoursday = 4 &&alert(currentTime)

问:上面的代码有什么问题?

<script>
var currentTime = new Date()
var day = currentTime.getDay()
var hours = currentTime.getHours()
alert(currentTime)
if (day = 4 && || day = 5 || day = 6) {
    document.getElementById("blogtxt").setAttribute("class", "friss");
    else document.getElementById("blogtxt").setAttribute("class", "");
}
</script>
4

4 回答 4

2
if (day = 4 && || day = 5 || day = 6) {
    document.getElementById("blogtxt").setAttribute("class", "friss");
    else document.getElementById("blogtxt").setAttribute("class", "");
}

应该:

if (day == 4 || day == 5 || day == 6) {
    document.getElementById("blogtxt").setAttribute("class", "friss");
} else {
    document.getElementById("blogtxt").setAttribute("class", "");
}
于 2012-07-12T09:35:45.153 回答
2

你有一堆错误,JSLint 检测到:

day = 4应该是day == 4&&if 子句中有一个无关紧要的内容。then 子句没有右大括号,else 子句没有左大括号。

更正了http://jsfiddle.net/barmar/7nRXG/上的代码

于 2012-07-12T09:39:17.763 回答
1

你在这里有一个语法错误,这就是代码甚至不会执行的原因:

if (day = 4 && || day = 5 || day = 6)

你不能写&& ||,将其替换为:

if (day === 4 || day === 5 || day === 6)

您还有一个语法错误else,应该是:

if (day === 4 || day === 5 || day === 6) {
    document.getElementById("blogtxt").setAttribute("class", "friss");
} else {
    document.getElementById("blogtxt").setAttribute("class", "");
}
于 2012-07-12T09:33:53.123 回答
0

给 ; 完成声明。// ";" 是语句终止符。像这样修改代码:

<script>
var currentTime = new Date();
var day = currentTime.getDay();
var hours = currentTime.getHours();
alert(currentTime);
if (day = 4 && || day = 5 || day = 6){
 document.getElementById("blogtxt").setAttribute("class", "friss");
else
 document.getElementById("blogtxt").setAttribute("class", "");}
</script>

希望这可以帮助。

你也不能使用&& ||.. 这是语法错误。将其替换为||.

{}if-else 语句中的花括号( )也没有正确完成。

而在 if 语句中比较运算符 is == not =

于 2012-07-12T09:36:05.717 回答