需要实现点击按钮出现10个颜色不一样的盒子,但是再次点击的时候他原来的不会消失,我想有没有一种方式让他点击的时候函数重新加载一下
<script>
var btn = document.querySelector('#btn')
var ul = document.querySelector('ul')
btn.onclick = function () {
kk()
function kk() {
for (i = 0; i < 10; i++) {
sum = Math.round(1 + Math.random() * 3)
li = document.createElement('li')
li.className = 'color' + sum
// console.log( 'color'+sum)
span = document.createElement('span')
li.appendChild(span)
span.innerHTML = i
ul.appendChild(li)
}
}
}
</script>
<button id="btn">
自动生成10个li
</button>
<ul>
</ul>
因为 你是 ul.appendChild所以 会追加 。你需要 先清空 ul 再追加
追加前 ul.innerHTML="" 清空
var btn = document.querySelector('#btn')
var ul = document.querySelector('ul')
btn.onclick = function () {
kk()
function kk() {
ul.innerHTML="";
for (i = 0; i < 10; i++) {
sum = Math.round(1 + Math.random() * 3)
li = document.createElement('li')
li.className = 'color' + sum
// console.log( 'color'+sum)
span = document.createElement('span')
li.appendChild(span)
span.innerHTML = i
ul.appendChild(li)
}
}
}
点2次是要这个效果吗?
<body>
<div class="main">
<button id="btn" onclick="btnClick()">自动生成10个li</button>
<ul></ul>
</div>
<script>
var ul = document.querySelector("ul");
var clickNum = 0; //记录点击次数
var start = 0,
end = 10,
step = 10; //start:遍历开始数 end:遍历结束数 step:生成多少个
function btnClick() {
start = step * clickNum + 1;
end = start + step;
for (var i = start; i < end; i++) {
sum = Math.round(1 + Math.random() * 3);
li = document.createElement("li");
li.className = "color" + sum;
span = document.createElement("span");
li.appendChild(span);
span.innerHTML = i;
ul.appendChild(li);
}
clickNum++;
}
</script>
</body>