[英]How to choose random children
我有以下问题:我不知道如何让 JavaScript 删除一个随机的孩子。 我有一个DIV
(随机选择)。 在这个DIV
有更多的DIV
,我想要一个删除一两个DIV
的 JavaScript 函数。 但是那里有一个不应删除的DIV
。 现在我有这个:
if (spieleranzahl == 4) {
var del = document.getElementById(random)
if(del.hasChildNodes()){
let rdm = Math.floor(Math.random() * 4);
del.removeChild(del.childNodes[rdm]);
}
if(del.hasChildNodes()){
let mdr = Math.floor(Math.random()* 3);
del.removeChild(del.childNodes[mdr]);
}
}
感谢您的回答。
您可以使用:nth-child
选择器为自己随机生成一个孩子。
document.querySelector('.btn').onclick = () => { let parentSelector = document.querySelector('.parent'); // we want to make sure we get a random number between 1 and the number of child. let random = Math.floor(1 + Math.random() * parentSelector.childElementCount); child = document.querySelector('.parent>span:nth-child(' + random + ')'); if(child) { console.log(child); child.remove(); } }
<div class="parent"> <span>child #1</span> <span>child #2</span> <span>child #3</span> <span>child #4</span> <span>child #5</span> <span>child #6</span> <span>child #7</span> </div> <button class="btn">Delete a child !</button>
我从你的问题中了解到你需要一次删除两个元素,只留下最后一个元素
<script>
function remove(){
var elements = document.getElementsByClassName('parent')[0].children;
if(elements.length == 1)
return;
elements[getRandom(elements.length-1)].remove();
if(elements.length > 1){
elements[getRandom(elements.length-1)].remove();
}
}
function getRandom(max){
return Math.floor(Math.random() * (max - 0 + 1)) + 0;
}
</script>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<button onclick="remove();" >Remove</button>
使用randojs.com ,您可以像这样完成此操作:
var randomDivChild = rando(document.querySelectorAll('.parent>div'));
if(randomDivChild) randomDivChild.remove();
其他什么都不需要。 如果需要,请查看该站点以获取文档,但这非常简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.