2015-02-12 3 views
-1

Попытка решить проблему fizzbuzz в javascript с небольшим html. Я хочу поместить ответы в <ul> и отобразить их на странице. Для этого мне нужно взять fizz-buzz и каким-то образом добавить их в элемент <li> в UL, с добавлением или добавлением в jQuery. Мой код работает нормально, пока я не добавлю jQuery к уравнению, чтобы добавить <li> s в html. В настоящее время у меня появляются цифры/fizz-buzzes с предупреждениями.jQuery, разбивающий мой fizzbuzz, почему?

Я попытался положить в $(document).ready(function() {}, обернув все javascript внутри скобок. Если я это сделаю, он ломается, даже если на javascript есть 0 jQuery. Просто ломается, как будто страница никогда не готова и, следовательно, javascript никогда не запустится.

Предполагая, что я могу заставить любой jQuery работать, могу ли я просто поместить jQuery statemments внутри своих инструкций elseif? пример:

else if (n1 % 5 === 0) { 
     $("ul").prepend("<li>n1</li>") 
    } 

Javascript:

var number = prompt("number?"); 
var num_int = parseInt(number); 

var smack = new Array(num_int); 

//populating array with numbers 1 through num_int 
for (i = 0; i < smack.length; i++) { 
    smack[i] = i+1;       
       } //test again still working? 

smack.forEach(function(n1) { //going through each array element, checking for fizz/buzz 

    if (n1 % 3 === 0 && n1 % 5 === 0) { 
     alert("fizz-buzz") 

    } 
    else if (n1 % 3 === 0) { 
     alert("fizz") 

    } 
    else if (n1 % 5 === 0) { 
     alert("buzz") 
    } 
    else { 
     alert(n1) 
    } 


}); //end of forEach 

HTML:

<hmtl> 
<head> 
<script src="scripts.js"></script> 
<script src="jquery-1.11.2.js"></script> 
</head> 

<body> 
<p> 
<h1>Fizzbuzz</h1> 
<ul id="hard"> 
<li>test</li> 
</ul> 
</p> 


</body> 

</html> 

JSFiddle

Заранее спасибо за любую помощь! Я уверен, что это смехотворный вопрос для всех, у кого есть опыт. Я просто ввязываюсь в это, и в то время как математический/логический раздел fizzbuzz был довольно прост, заставить его правильно отображать, убивает меня.

+0

Вы можете положить в другое место, если. – Rajashekhar

+0

Если ваша логика fizzbuzz находится в файле scripts.js, вам нужно будет загрузить ее после сценария jquery. В противном случае jquery не будет определен при попытке ссылаться на него. –

+0

Попробуйте следующее: http://jsfiddle.net/e6a609wu/2/ – Paul

ответ

0

Вы должны загрузить jquery до вашего script.js

Вот demo

Я добавил $('#hard').append

0

Изменение части JQuery для:

var number = prompt("number?"); 
var num_int = parseInt(number); 

var smack = new Array(num_int); 

//populating array with numbers 1 through num_int 
for (i = 0; i < smack.length; i++) { 
    smack[i] = i+1;       
       } //test again still working? 

smack.forEach(function(n1) { //going through each array element, checking for fizz/buzz 

    if (n1 % 3 === 0 && n1 % 5 === 0) { 
     $('#hard').append("<li>fizz-buzz</li>"); 

    } 
    else if (n1 % 3 === 0) { 
     $('#hard').append("<li>fizz</li>"); 

    } 
    else if (n1 % 5 === 0) { 
     $('#hard').append("<li>buzz</li>"); 
    } 
    else { 
     $('#hard').append("<li>"+n1+"</li>"); 
    } 


}); //end of forEach 

поможет.

Изменения здесь в условиях if. Вы каждый раз добавляете свой li в ul, и у вас будут свои ответы в списке.

Надеюсь, это помогло.

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