繁体   English   中英

如何选择随机孩子

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM