Я не могу поместить внешний javascript в div

У меня есть довольно простой HTML, фотография и текст, но я хочу поместить между ними элемент javascript. Этот элемент представляет собой таймер обратного отсчета и может быть вставлен с помощью внешнего JavaScript.

У меня есть код с HTML, встроенным css и javascript здесь: https://codepen.io/thomaskwelker/pen/xjwQPj

<div class = "kanye-wrapper">
  <div class = "kanye-photo">
    <img src = "https://vignette.wikia.nocookie.net/star-clan/images/9/90/Kanye.png">
  </div>
  <div class = "kanye-timer">
    <script src = "js/kanye.js"></script>
  </div>
  <div class = "kanye-link">
    <a href = "https://google.com">See why</a>
  </div>
</div>

Я часами гуглил и пробовал разные вещи. Не могли бы вы сказать мне, как я могу получить таймер javascript внутри div "kanye-timer"?

Пожалуйста, объясните, почему то, что показано, не работает и как вы определили, что это не работает. Уделите несколько минут, чтобы внимательно прочитать Как спросить

charlietfl 23.04.2018 00:51

Почему ты хочешь это сделать? Чего вы надеетесь достичь? Что именно не работает? Сообщается об ошибках?

Pointy 23.04.2018 00:51

Тот факт, что вы помещаете свой скрипт в div, не означает, что туда собираются добавленные элементы.

scrappedcola 23.04.2018 00:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
3
119
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вместо $(document.body).append($r.cvs); попробуйте $('.kanye-timer').append($r.cvs);

Это говорит JS добавить таймер к div, а не просто поместить его в конец документа.

Ваш код инициализации создает объект холста, который никогда не прикрепляется к какому-либо документу DOM. Фрагмент JavaScript не обязательно должен быть включен в строку. Но у вас может быть контейнер, в котором вы хотите, чтобы холст был:

<div class = "kanye-wrapper">
  <div class = "kanye-photo">
    <img src = "https://vignette.wikia.nocookie.net/star-clan/images/9/90/Kanye.png">
  </div>
  <div class = "kanye-timer" id = "timercontainer">

  </div>
  <div class = "kanye-link">
    <a href = "https://google.com">See why</a>
  </div>
</div>

<script src = "js/kanye.js"></script>

Теперь в вашем kanye.js напишите что-нибудь вроде этого:

document.getElementById('timercontainer').appendChild($r.cvs);

Конечно, это не переносимый код. Как только вы заставите его работать, вы можете передать идентификатор контейнера в качестве параметра.

Добавление происходит в его коде в строке 32 `$ (document.body) .append ($ r.cvs);` проблема в том, что он должен создать параметр, который является конкретным элементом, к которому он хочет добавить, а не document.body. Кажется, op предполагает, что расположение скрипта определяет, куда добавляются элементы.

scrappedcola 23.04.2018 00:59

Спасибо, что указали на это. Ваш комментарий мог прямо указать на его недоразумение. Также очень сомнительно, будет ли на этом этапе полностью материализован «document.body». Это, конечно, не готово к DOM.

Schien 23.04.2018 01:01

Другие вопросы по теме