Основной принтер с использованием js?

#javascript

Вопрос:

Здравствуйте, нам дали задание, в котором пользователь вводит любое значение только до 200, и если это простое число, оно должно выводить простое, а если нет, то не простое. Я уже точно изменил код. Однако это не работает. Почему это так?

 <!DOCTYPE html>
<html>
<body>

<script>
  function doAction(){

    //gets the value from the text field with id input1 and stores it in variable num1
    var num1 = document.getElementById("input1").value;



    //HINT: loop through some finite number and check whether they are prime
    //You can create a function out of the CheckPrime exercise and use that to check if a number is 
Prime

    //for loop the numbers until you satisfy the num1

    function primeprinter(num1) {
  for(var i = 2; i < num1; i  )
    if(num1 % i === 0) return false;
  return num1 > 1;

  if (primeprinter === true){
      <p> Prime </p>
  }
  else{
      <p> Not Prime </p>
   }
}





    //Challenges:
    //validate if the input are numbers. Hint: Check out isNaN() function
    //Validate the input to only be less than equal 200
  }


</script>

<h2>Prime Numbers Printer</h2>
Prints the first N prime numbers. Only try up to 200.
<br/>
<br/>
Input1: <input type="text" id="input1"/>
<button type="button" onclick="doAction()">
Print Prime</button>
<br/>
<br/>
Result:
<p id="output"></p>

</body>
</html> 
 

Я новичок в javascript. Пожалуйста, помогите мне ;-;

Комментарии:

1. Вы не можете встроить HTML в JavaScript, например if (primeprinter === true){ <p> Prime </p> } else { <p> Not Prime </p> } , не работает. Либо вы используете структуру шаблонов, такую как Handlebars , либо управляете DOM вручную.

2. как ху-ху, пожалуйста, дайте ответ и объясните, что я все еще хватаюсь за cnt ;-;

Ответ №1:

Вы не можете встроить HTML в JavaScript, т. е. if (primeprinter === true){ <p> Prime </p> } else { <p> Not Prime </p> } Он не работает. Вы могли бы манипулировать домом вручную.

 function primeprinter(num1) {
  for (let i = 2; i < num1; i  )
    if (num1 % i === 0) return false;
  return num1 > 1;
}

function doAction() {
  const num1 = document.getElementById("input1").value;
  document.getElementById("output").innerHTML = primeprinter(num1) ? "Prime" : "Not Prime";
} 
 <h2>Prime Numbers Printer</h2>
<span>Prints the first N prime numbers. Only try up to 200.</span>
<br />
<br />
<label for="input1">Input1: </label><input type="text" id="input1" />
<button type="button" onclick="doAction()">Print Prime</button>
<br />
<br />
<span>Result:</span>
<p id="output"></p> 

Комментарии:

1. @пустой Да, вы можете запустить его напрямую, нажав «Запустить фрагмент кода» и посмотреть, как он работает.

2. @blank Это работает на меня. Я нажимаю на «Запустить фрагмент кода». Откроется веб — сайт. Я ввожу 23, нажимаю кнопку и получаю Prime . Я ввожу 22, нажимаю кнопку и получаю Not Prime . Что происходит, когда вы нажимаете «Запустить фрагмент кода»?