【问题标题】:JQuery: Click a random link on document readyJQuery:单击文档准备好的随机链接
【发布时间】:2011-09-15 23:23:24
【问题描述】:

我在一个页面上有五个链接,当点击这些链接时,它们会在页面的另一部分显示不同的内容。每个链接都有一个 ID,我在文档上有一个简单的点击功能,可以选择第一个链接:

$('#link1').click();

如何让它在准备好文档时随机单击五个链接之一,而不是专门单击#link1?是的,我意识到点击函数可能不是处理这个问题的理想方法。

提前致谢!

【问题讨论】:

    标签: jquery random click


    【解决方案1】:

    另一种可能的黑客攻击:

    $('a[href^="link"]').sort(function(){return Math.random()-0.5}).eq(0).click()
    

    上面的代码会打乱链接,并返回第一个。 然后您可以触发返回元素的“点击”

    【讨论】:

      【解决方案2】:

      smoov jQuery 处事方式:

      jQuery.jQueryRandom = 0;
      jQuery.extend(jQuery.expr[":"], {
        random: function(a, i, m, r) {
           if (i == 0) {
               jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
           };
           return i == jQuery.jQueryRandom;
       } });
      
      <script type="text/javascript">
       $().ready(function() {
           alert($("a:random").click());
       }); 
       </script>
      

      (我知道自定义选择器,但仍然无耻地从here盗取)

      稍微不那么流畅:

      $(function() {
         var links = $('a');
         var randomNum = Math.floor(Math.random()*links.length)  
         links.get(randomNumber).click();
      } 
      

      如果你想要一个 ID 以 link 开头的链接,你总是可以这样做:

         var links = $("a[id^='link']");
      

      现在无论你使用数字还是其他什么都没有关系。任何具有以链接开头的 ID 的东西。 (当然,您也可以将其应用于特定的 css 类)

      【讨论】:

      • +1 我在嘴里吐了一点,然后晕了过去。太棒了。
      • 这太完美了!非常感谢,也感谢所有回答的人。
      【解决方案3】:

      我认为是

      links = new Array();
      $('a').each(function() { links.push($(this)) });
      el = links[Math.floor(Math.random()*links.length)]
      el.click();
      

      它会抓取页面上的所有链接并将它们放入一个数组中,然后单击其中一个。

      【讨论】:

      • 不需要先将它们放入数组中。
      • 我把它拆开,这样他就可以看到这个过程,而不仅仅是复制和粘贴代码。
      【解决方案4】:

      假设感兴趣的链接以“链接”开头,后跟一个数字:

      $('a[id="link' + Math.floor(Math.random() * 5) + '"]')[0].click();
      

      【讨论】:

        【解决方案5】:

        这样的?

        var randomnumber=Math.floor(Math.random()*5)
        $($('a').get(randomnumber)).click();
        

        【讨论】:

        • 更好用 .eq(): $('a').eq(randomnumber).click();
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        相关资源
        最近更新 更多