@Licc22

Как сделать появление видео на сайте при вводе ссылки на видео в input?

<html>
<head>
</head>
<body>
  <iframe class="vid_curs" src="'сюда подставить данные из input'" title="YouTube video player" frameborder="0" allowfullscreen></iframe>
 <input type="text" id="quantity" >
<a href="" id="link">нажать</a>
<script>
link.onclick = function(e) {
  this.setAttribute('src',this.getAttribute('src').replace("сюда подставить данные из input",quantity.value));
}
</script>
</body>
</html>


Не знаю почему он не работает(только начал учить js). Может кто-то сможет подсказать
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 2
Alex_mos
@Alex_mos
Google всему голова
Нельзя получить элемент если просто написать его id
Ответ написан
Stalker_RED
@Stalker_RED
Главный косяк вот:
link.onclick = function(e) {
  this.setAttribute( // this - это link, и именно ему вы устанавливаете атрибут src, который ничего не делает
    'src',
  this.getAttribute('src') // опять this, который указывааеет на link
       .replace("сюда подставить данные из input",quantity.value));
}


по мелочи:
1. replace делать не нужно, можно сразу ставить новое значение:
iframe.src = quantity.value;

2. почему-то input для адреса называется quantity, что переводится как "количество". Пытаетесь запутать врагов?

3. использовать onclick довольно просто, но вы этим можете наплодить багов.
function hello(){
  console.log('hello');
}
function goodbye(){
  console.log('goodbye');
}

button1.onclick = hello;
button1.onclick = goodbye;

button2.addEventListener('click', hello);
button2.addEventListener('click', goodbye);
// при нажатии на первую кнопку сработает только goodbye, т.к. мы перезаписали свойство onclick
// при нажатии на вторую сработают обе функции, как и задумывалось


4. обращаться к элементам используя переменные совпадающие с id элемента конечно удобно, но осторожнее с этим, эта фича часто ломается когда другой код использует переменные с такими-же именами. И поверьте, переменная link может встречаться очень часто.

upd:
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы