JavaScript - 将随机数/变量插入动态超链接?

标签 javascript html random hyperlink

这是我的第一个 HTML JavaScript,我想通过 JavaScript 生成一个包含半随机单词和数字的随机 HTML 链接,以搜索随机的知识/神秘文章。

例如:

  • google 搜索“Wiki Born(随机数 1400-1850)”>>> 随机查找 后黑暗时代传记

  • google 搜索“无法解释(随机数 1900 1930)”>>> 查找随机数 无法解释的事件

最佳答案

如果你想generate a random link with a random number on page load :

var searches = [
    ['Wiki Born', 1400, 1850, 'post dark ages biography'],
    ['unexplained', 1900, 1930, 'unexplained event']
];
var google = "http://www.google.com/search?q=";

function getRand(min, max) {
    return min + Math.floor(Math.random() * (max-min));
}

window.onload = function() {
    // get random search item
    var item = searches[getRand(0, searches.length)];

    // get random number based on the selected item
    var randnum = getRand(item[1], item[2]);

    // put together the google link, replace spaces with + sign
    var searchlink = (google + item[0] + ' ' + randnum).replace(/\s+/g, '+');
    console.log(searchlink);

    // put together the html tag
    var html = '<a href="'+searchlink+'" target="_blank">Find random '+item[3]+'</a>';
    console.log(html);

    document.body.innerHTML = html;
};

如果你想display all links with their own random number on page load ,添加一个循环:

// for each search item
for(i=0; i<searches.length; i++) {
    var item = searches[i];

....

如果你想要each link to generate a different number each time it is clicked ,我们可以采取不同的方法:

<script>
function getRand(min, max) {
    return min + Math.floor(Math.random() * (max-min));
}

window.onload = function() {
    // get all links in the #randomlinks div
    var links = document.getElementById('randomlinks').getElementsByTagName('a');

    // for each search item
    for(i=0; i<links.length; i++) {

        // set a click handler
        links[i].onclick = function() {

            // get random number based on data attributes
            var min = parseInt(this.getAttribute('data-min'), 10);
            var max = parseInt(this.getAttribute('data-max'), 10);
            var randnum = getRand(min, max);

            // append random number to end of link
            this.href = this.href.replace(/\+[0-9]*$/, '+'+randnum);
        };
    }
};
</script>
<div id="randomlinks">
    <a href="http://www.google.com/search?q=Wiki+Born+" data-min="1400" data-max="1850" target="_blank">Find random post dark ages biography</a><br>
    <a href="http://www.google.com/search?q=unexplained+" data-min="1900" data-max="1930" target="_blank">Find random unexplained event</a>
</div>

关于JavaScript - 将随机数/变量插入动态超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16129063/

相关文章:

C、rand 函数不能与 sleep() 函数一起正常工作

string - golang - 用数字替换字符串字符 golang

html - 如何让包裹在 anchor 中的定义列表水平显示

javascript - $index 在 Nativescript 中不起作用

javascript - 没有显示值的原因(DOM)

javascript - 具有选定选项的 Div 以过滤另一个 div

c# - 正则表达式验证器 : Client side validation

javascript - window.location.replace 登录表单问题(html、javascript)

html - 忽略HTML 5视频和随机视频加载

javascript - 消息: 'ActiveXOjbect' is undefined