Javascript если выписка выдается: не отображается на веб-странице - PullRequest
0 голосов
/ 31 января 2020

У меня ОЧЕНЬ ОСНОВНЫЕ C знания javascript, и я с нетерпением ждал, чтобы выучить какое-то условное утверждение в javascript. Поэтому я продолжил и ввел этот код в файл HTML, который называется «index. html»:

<!DOCTYPE html>
<html>
    <head>
        <title>A sample webpage</title>
    </head>
    <body>
        <script src="script.js"></script>
    </body>
</html>

И полученный результат был совершенно нормальным. Появилось название «Пример веб-страницы».

Но следующий код, который я ввел, создал проблемы в результате:

var myNumber = window.prompt("Enter number: ");
parseFloat(myNumber);
document.write(myNumber);

Результат получен, как и ожидалось.

if (myNumber > 15) {
    document.write(<p>Good! You've passed! </p>);
}
else {
    document.write(<p>You failed! Try again next time.</p>);
}

Но когда я добавляю оператор if, который выдает результат, основанный на вводе пользователя, я получаю пустую страницу. Я не понимаю, в чем причина этого. Есть ли какие-то проблемы в синтаксисе?

Мне также кажется, что он не выполняет первую часть написанного мною кода, ему полностью нужен весь код. Я чувствую, что это нормально, но не должен ли он на самом деле выполнить код document.write?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

document.write принимает строку в качестве аргумента. Вы передаете это HTML.

Просто измените

document.write(<p>Good! You've passed! </p>);

на

document.write('<p>Good! You've passed! </p>');

, чтобы заставить его работать. Лучше всего добавить на страницу

<p id="message"></p>

и там, где у вас есть

document.write('<p>Good! You've passed! </p>');

, вы можете использовать

document.getElementById('message').textContent='Good! You've passed!';

document.getElementById("myButton").addEventListener('click', function() { // when clicked
  let myNumber = window.prompt("Enter number: ");
  myNumber = parseFloat(myNumber); // convert to number from string
  document.getElementById('number').textContent = myNumber;
  const msg = document.getElementById('number'); // output container
  if (myNumber > 15) {
    msg.textContent = 'Good! You\'ve passed!' // escaping the quote
  } 
  else {
    msg.textContent = 'You failed! Try again next time.';
  }
});
// above can be written using a so called ternary:
// msg.textContent = myNumber > 15 ? 'Good! You\'ve passed!' : 'You failed! Try again next time.'
<!DOCTYPE html>
<html>

<head>
  <title>A sample webpage</title>
</head>

<body>
  <p id="number"></p>
  <p id="message"></p>
  <button type="button" id="myButton">Did you pass?</button>
  <script src="script.js"></script>
</body>

</html>
0 голосов
/ 31 января 2020

Как я вижу, вам нужно заключить в кавычки ваши строки в document.write (string). вот так:

if (myNumber > 15) {
    document.write("<p>Good! You've passed! </p>");
}
else {
    document.write("<p>You failed! Try again next time.</p>");
}

Надеюсь это вам пригодится. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...