Тег H1 не загружает на мою страницу только часть JavaScript, почему это так? - PullRequest
0 голосов
/ 06 мая 2018

Когда я загружаю эту страницу в браузер, появляется Javascript, а HTML (тег H1) - нет. Я не смог понять, почему я не могу отобразить HTML на странице. Я новичок в Javascript и HTML ... ясно.

 <!DOCTYPE html>
 <html>
  <head>
  <script src="jquery.js"></script>
  <script src="data_generator.js"></script>
 </head> 
   <body>
   <h1>hello</h1>
 <script>
  $(document).ready(function(){
    var $body = $('body');
    $body.html('');

    var index = streams.home.length - 1;
    while(index >= 0){
      var tweet = streams.home[index];
      var $tweet = $('<div></div>');
      $tweet.text('@' + tweet.user + ': ' + tweet.message);
      $tweet.appendTo($body);
      index -= 1;
    }

  });
</script>

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Как сказал @charlietfl, $body.html(''); очищает все предыдущие html-содержимое тега body. Проще говоря, он просто заменяет содержимое тем, что находится внутри кавычек, или в этом случае ничего.

Вот документация по теме:

JQuery html () Документация

EDIT: Вдохновленный ответом Шона, Если вы хотите использовать контейнер body напрямую, вы можете сделать это следующим образом:

<body>
  <h1>Hello, world!</h1>
  <script>
  $(document).ready(function(){
    var $body = $('body');
    // $body.html(''); // This clears it and since you don't want to, you shouldn't run this command.

    var index = streams.home.length - 1;
    while(index >= 0){
      var tweet = streams.home[index];
      var $tweet = $('<div></div>');
      $tweet.text('@' + tweet.user + ': ' + tweet.message);
      $tweet.appendTo($body);
      index -= 1;
    }
  });
</script>
</body>
0 голосов
/ 06 мая 2018

Вы удаляете тег <h1>, когда очищаете внутренний HTML-код тега body, вызывая $('body').html(''). Почему вы не работаете с другим элементом контейнера, который вы можете очистить:

<body>
  <h1>Hello, world!</h1>
  <div id="root"></div>
  <script>
  $(document).ready(function(){
    var $root = $('#root');
    // $root.html(''); // Already empty. Don't need to clear it.

    var index = streams.home.length - 1;
    while(index >= 0){
      var tweet = streams.home[index];
      var $tweet = $('<div></div>');
      $tweet.text('@' + tweet.user + ': ' + tweet.message);
      $tweet.appendTo($root);
      index -= 1;
    }
  });
</script>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...