我想在点击某些东西后用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,而不是它的工作,而不是我再次点击而不再工作,我应该放置什么代码或做什么。请帮助这个可悲的乞讨者:'(
答案 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被修改和旧元素被删除。所以它不止一次起作用。
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;
答案 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>
:)