javascript - 如何更轻松地使用随机 href 设置 anchor ?

标签 javascript jquery

所以,在我的项目中,我有一个索引和一个包含一堆编号页面的目录(pages/001.html、pages/002.hmtl、pages/003.html...),我想设置一个<a>每次重新加载索引/单击 anchor 时,都会将其 href 更改为此页面中的任何一个。

我可以创建一个数组,写入每个网址并使用 .random() 生成链接,但问题是,我有很多编号页面(目前有 30 个),并且我假装最终会创建更多页面,所以我想知道是否有更简单、更快的方法来做到这一点。

代码应该是这样的:

$('random_button').on('click', function(){

  $('random_button').attr("href", Any page inside the directory pages/ chosen randomly)

})

有什么想法吗?谢谢!

最佳答案

如果您的 html 文件名中有类似的模式,例如 001.html、002.html,那么您可以执行类似的操作

var openLink = document.getElementById('open');
var randomLink = document.getElementById('random');
/*
assuming there are 40 pages, and page name have patterns like 001.html, 002.html
*/
var pageArray = range(40).map(function(page){
	if(page < 10) return '00' + page + '.html';
	return '0' + page +'.html';
});



/* 
this function will return a array of n elements 
*/
function range(n){
  return Array.from({length: n}, function(value, key){ return key;})
}

function getRandomPage(pageArray){
	return pageArray[Math.floor(Math.random()*pageArray.length)]
}
openLink.addEventListener('click', function(e){
	e.preventDefault();
  	console.log(getRandomPage(pageArray));
	randomLink.href = getRandomPage(pageArray);	
})
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
</head>
<body>
<a href="#" id="open">Open Random</a>
<a href="#" id="random">Random Link</a>	
</body>
</html>

如果你有不同类型的文件名,那么这将不起作用,@Jozef Cipa 提供的 php 解决方案会更好

关于javascript - 如何更轻松地使用随机 href 设置 anchor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418473/

相关文章:

javascript - 如何使用 Google Analytics 跟踪下载?

javascript - Angular 和普通 JavaScript 函数,最佳实践

javascript - 如何在没有 ctx.bezierCurveTo 的情况下使用 native Javascript 代码绘制平滑曲线?

javascript - 在 JavaScript 回调函数中设置局部变量

javascript - 如何从不同的表中获取javascript中选定的单选按钮的总和?

javascript - jQuery 按类过滤 div

RPG 中的 Javascript if 语句

jquery - 有没有更简洁的方法来编写这个 jQuery?

javascript - jQuery jslint var 在定义之前就被使用了

javascript - 如何防止动态更改时输入按钮中的居中文本移动