管道输入无序列表标题并随机化项目

Pipe in unordered list titles and randomize items

我的主页上有一个文章列表,"read more" link 指向文章页面:

<div class="articles_list">
 <ul>
  <li>Article 1</li>
  <li>Article 2</li>
  <li>Article 3</li>
  <li>Article 4</li>
 </ul>
  <div class="clear"></div>
   <div class="more"><a href="articles.html">and more...</a></div>
</div>

我想更改标题,因为我有 4 篇以上的文章,并且不时地随机排列它们,而不必自己打字。 例如,列表可以是:

<div class="articles_list">
 <ul>
  <li>Article 5</li>
  <li>Article 1</li>
  <li>Article 8</li>
  <li>Article 4</li>
 </ul>
  <div class="clear"></div>
   <div class="more"><a href="articles.html">and more...</a></div>
</div>

有什么办法可以做到吗?

这里您需要编写一些脚本。我在这里准备了一个文章列表 (13)。同样,arr(数组)需要包含您拥有的文章列表。 Rest all 是动态代码,它以随机顺序选择文章。

var arr = ['Article 1','Article 2','Article 3','Article 4','Article 5','Article 6','Article 7','Article 8','Article 9','Article 10','Article 11','Article 12','Article 13' ];


//Prepare 4 random articles.
var finalList = [];
var i = 0;
var node = document.getElementById('ulArticle');
while(true){
  var randomNo = Math.floor(Math.random() * arr.length);
  var art = arr[randomNo];
  if(finalList.indexOf(art) == -1){
    finalList.push(art);
    node.innerHTML += '<li>'+art+'</li>';
    i++;
  }
  if(i >= 4){
    break;
  }
}

   
<div class="articles_list">
 <ul id="ulArticle">
  
 </ul>
  <div class="clear"></div>
   <div class="more"><a href="articles.html">and more...</a></div>
</div>