如何重复函数来放置另一个innerHTML?

时间:2017-04-29 09:57:24

标签: javascript jquery html function return

我想在点击某些东西后用HTML创建div部分,但它只发生一次,如果我再次点击,它什么都不做。可能非常基本的事情要知道,但我只是打招呼。

document.getElementById("plusvideo").onclick = function gkHaj() {
  var fdsf = 2;
  var text = document.getElementById("leftsidesd").innerHTML;
  var i = 1;
  if (fdsf == 2) {
    document.getElementById("leftsidesd").innerHTML = document.getElementById("leftsidesd").innerHTML + '<div class="episesnig">Episode 1 <input type="text" class="linkkepiz" placeholder="Link"></div>';
  } else {}
}
<div id="leftsidesd">

  <div class="episernig">Series 01</div>
  <div id="plusvideo">+video</div>
  <div class="episesnig">Episode 1 <input type="text" class="linkkepiz" placeholder="Link"></div>

</div>

嗯,在这段代码中有些东西可能是无用的,但正如我所说,我点击plusvideo,而不是它的工作,而不是我再次点击而不再工作,我应该放置什么代码或做什么。请帮助这个可悲的乞讨者:'(

2 个答案:

答案 0 :(得分:4)

因为

document.getElementById("leftsidesd").innerHTML = document.getElementById("leftsidesd").innerHTML + '<div class="episesnig">Episode 1 <input type="text" class="linkkepiz" placeholder="Link"></div>';

附加到plusvideo的事件侦听器不再是HTML被修改和旧元素被删除。所以它不止一次起作用。

&#13;
&#13;
var fdsf = 2;

document.getElementById("plusvideo").onclick = function gkHaj() {
  var mydiv = document.createElement('div');
  mydiv.setAttribute('class', 'episesnig');
  mydiv.innerHTML = 'Episode ' + fdsf + '<input type="text" class="linkkepiz" placeholder="Link">';
  fdsf++;
  document.getElementById("leftsidesd").appendChild(mydiv);
}
&#13;
<div id="leftsidesd">
  <div class="episernig">Series 01</div>
  <div id="plusvideo">+video</div>
  <div class="episesnig">Episode 1 <input type="text" class="linkkepiz" placeholder="Link"></div>

</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

试试这个:

var i = 1;
            $('#plusvideo').click(function () {
                $('#leftsidesd').append('<div class="episesnig">Episode ' + i + ' <input type="text" class="linkkepiz" placeholder="Link"></div>')
                i++;
            });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="leftsidesd">

    <div class="episernig">Series 01</div><div id="plusvideo">+video</div>

</div>

:)