2015-02-25 10 views
1

Недавно я начал работать с Javascript, как несколько часов назад, и я не могу понять, почему он все еще показывает текст, который не должен быть на моем сайте. Dreamweaver не говорит нет ошибки, но там должен быть ..Почему мой Javascript-код работает неправильно?

<script type="text/javascript"> 
    var day = new Date(); 
    var hr = day.getHours(); 
    if((hr == 1) || (hr == 2) || (hr == 3) || (hr == 4) || (hr == 5) || (hr == 6) || (hr == 7) || (hr == 8) || (hr == 9)); { 
     document.write("Paragraph one stack example"); 
    } 
    if(hr == 10) { 
     document.write("P2 stack ex"); 
    } 
    if((hr == 11) || (hr == 12) || (hr == 13)); { 
     document.write("P3 stack ex."); 
    } 

</script> 
+1

Кроме того, пожалуйста, сократите 'if' заявление' если (ч> = 1 && час <= 9) '. – jfriend00

ответ

1

Из кода, слегка переформатировано:

if((hr == 1) || ... || (hr == 9)); { 
    document.write("Paragraph one stack example"); 
} 

Избавиться от этой точки с запятой, это делает весь if немного неуместно.

Что переводится это:

if((hr == 1) || ... || (hr == 9)) 
    ; 
{ 
    document.write("Paragraph one stack example"); 
} 

Другими словами,

  • если hr 1-9, ничего не делать.
  • независимо от значения hr, выход «Пример первого абзаца пункта».

У вас эта же проблема с оператором if для 11/12/13.


лучше решение, что «один через девять» if заявление, кстати, было бы:

if((hr >= 1) && (hr <= 9)) { 
    document.write("Paragraph one stack example"); 
} 

и вы можете дополнительно очистить код, так как все условия взаимно эксклюзивные:

<script type="text/javascript"> 
    var day = new Date(); 
    var hr = day.getHours(); 
    if ((hr >= 1) || (hr <= 9)) { 
     document.write("Paragraph one stack example"); 
    } else if (hr == 10) { 
     document.write("P2 stack ex"); 
    } else if ((hr >= 11) && (hr <= 13)) { 
     document.write("P3 stack ex."); 
    } 
</script> 

Там мало репер, если hr равно 10, если вы уже установили, что это, например, 4. Таким образом, для этого вы можете использовать else if.

+0

У вас есть точка с запятой после оператора if, которая останавливает ее на своих дорожках. Удалите это, и я уверен, что он сработает. – Sean

+1

Жаль, что рано здесь не проснулись ... Я поставил свой ответ в неправильном месте, уважая – Sean

1

код действителен, но вы сделали ошибку, когда поставил

;

в конце, если выражения

если убрать это все будет работать нормально!

var day = new Date(); 
 
var hr = day.getHours(); 
 
if((hr == 1) || (hr == 2) || (hr == 3) || (hr == 4) || (hr == 5) || (hr == 6) || (hr == 7) || (hr == 8) || (hr == 9)) { 
 
    document.write("Paragraph one stack example"); 
 
} 
 
if(hr == 10) { 
 
    document.write("P2 stack ex"); 
 
} 
 
if((hr == 11) || (hr == 12) || (hr == 13)) { 
 
    document.write("P3 stack ex."); 
 
}

+0

Вы, ребята, были правы! Спасибо! – parkcore

Смежные вопросы