2012-07-12 58 views
0

所以,我有一些代码因为某些奇怪的原因而不起作用。它的任务是,要改变一个元素的属性classblogtxtIFday变量等于4,5或6 一个ID(周五,周六,周日) 我也想在hours变量获得用于day = 4 &&。 另外,我敢肯定,这个问题是不是在IF声明,因为代码甚至不会执行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> 
+0

你使用jQuery吗? – 2012-07-12 09:30:20

回答

2

你有一大堆的错误,其中的JSLint检测:

day = 4应该是day == 4。 if语句中有一个无关的&&。 您没有右括号的then-clause,或右括号的else-clause。

更正后的代码在http://jsfiddle.net/barmar/7nRXG/

+0

我怀疑JSLint建议'==' – Esailija 2012-07-12 09:43:19

+0

它警告'='(“期望一个条件表达式,但看到一个任务”),但不建议进行特定的替换。将它改为'=='会使警告静音--JSLint无法判断'==='比'=='更合适(除非你认为它应该假设'==='总是更好)。 – Barmar 2012-07-12 09:56:03

+0

当我使用'=='时,我得到'Expected'==='',而是看到'=='。' – Esailija 2012-07-12 10:01:40

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", ""); 
} 
+0

day = 4应该是day == 4,等等。 – 2012-07-12 09:37:24

+0

尽管JS并不真的需要它,但用分号结束所有语句是一种很好的风格。 – Barmar 2012-07-12 09:41:34

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", ""); 
} 
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语句中没有正确完成。

和in if语句比较运算符是==而不是=