javascript - 显示元素列表中的元素

标签 javascript jquery html css random

我有一个样本:

link

我希望具有 "item-extra" 类的元素随机显示在元素列表中。

现在,代码重新排列所有元素。

我希望其余部分保持固定,只有带有 "item-extra"类的那个会被移动到每个页面重新加载。

var ul = document.querySelector('ul');
for (var i = ul.children.length; i >= 0; i--) {
  ul.appendChild(ul.children[Math.random() * i | 0]);
}
.item-extra {
  color: red;
}
<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li class="item-extra">item extra</li>
</ul>

最佳答案

您可以使用 .insertBefore() 函数执行此操作。

例子:

var ul = document.querySelector('ul');
var itemExtra = document.querySelector('.item-extra');
var ulLength = ul.children.length;

ul.insertBefore(itemExtra, ul.children[Math.random() * ulLength | 0]);
.item-extra {
  color: red;
}
<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li class="item-extra">item extra</li>
</ul>  

关于javascript - 显示元素列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58093022/

相关文章:

html - IE8表格消失的边框顶部

html - firefox 的不同文本对齐行为

javascript - 在 JS 参数中添加引号

javascript - 如何使用javascript中的if语句根据随机数显示/隐藏文本(无jquery)

Jquery 在单击时检查复选框不会检查它

asp.net - 使用 jquery 单击隐藏标签

html - 文本输入字段对齐

Javascript -> 下载以 ISO-8859-1/Latin1/Windows-1252 编码的 CSV 文件

javascript - FormData 对象在 Internet Explorer 10 中可用吗?

javascript - 仅当表格超过 2 行时才返回最接近 <tr> 的选择器