Py学习  »  Jquery

如何使jquery在页面加载时单击一个随机li元素?

Phanti • 4 年前 • 177 次点击  

我想触发一个。在我的列表的随机组上单击处理程序。

我尝试了下面的代码,但它不起作用:

$(document).ready(function(){
    $('#sidebar li:nth-child() a').click();
});

也尝试过:

Click trigger on page load (UL > LI)
Auto-click button element on page load using jQuery

        <li class="countries" id="2"><img src="{% static "images/england.png" %}" alt="england">Premier League
          <ul class="subbar">
            <li><a class="team" id="12">FC Liverpool</a></li>
            <li><a class="team" id="13">Manchester City</a></li>
            <li><a class="team" id="17">Tottenham Hotspur</a></li>
            <li><a class="team" id="14">Manchester United</a></li>
            <li><a class="team" id="11">Leicester City</a></li>
            <li><a class="team" id="6">FC Chelsea</a></li>
            <li><a class="team" id="2">FC Arsenal</a></li>
            <li><a class="team" id="1">AFC Bournemouth</a></li>
            <li><a class="team" id="19">West Ham United</a></li>
            <li><a class="team" id="16">FC Southapmton</a></li>
            <li><a class="team" id="8">FC Everton</a></li>
            <li><a class="team" id="7">Crystal Palace</a></li>
            <li><a class="team" id="5">Cardiff City</a></li>
            <li><a class="team" id="4">FC Burnley</a></li>
            <li><a class="team" id="9">Fulham</a></li>
            <li><a class="team" id="3">Brighton & Hove Albion</a></li>
            <li><a class="team" id="15">Newcastle United</a></li>
            <li><a class="team" id="10">Huddersfield Town</a></li>
            <li><a class="team" id="20">Wolverhampton Wand.</a></li>
            <li><a class="team" id="18">FC Watford</a></li>
          </ul>
        </li>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46797
 
177 次点击  
文章 [ 1 ]  |  最新文章 4 年前
freefaller
Reply   •   1 楼
freefaller    4 年前

在我开始之前,我应该说 id 属性在HTML中无效。例如,你可以简单地把任何字符放在前面来修复它 id="a1" 是的。

你应该用 Math.random() 根据 li 列表中的项目。

您可以通过将该随机值放在 nth-child 部分….

(注意,我最初说的是 .click() 手术室应该使用 .trigger("click") 是的。那是错误的,而且 docs 清楚地表明 .click() 是一条有效的捷径 .trigger(“单击”) (第三章)

$(function(){
  $("a.team").on("click", function(e) {
    e.preventDefault();
    console.log($(this)[0].id + " - " + $(this)[0].innerHTML);
  });
  
  var numLi = $(".subbar li").length;
  var rnd = Math.floor(Math.random() * Math.floor(numLi)) + 1;
  $(".subbar li:nth-child(" + rnd.toString() + ") a").click();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="subbar">
  <li><a class="team" id="12">FC Liverpool</a></li>
  <li><a class="team" id="13">Manchester City</a></li>
  <li><a class="team" id="17">Tottenham Hotspur</a></li>
  <li><a class="team" id="14">Manchester United</a></li>
  <li><a class="team" id="11">Leicester City</a></li>
  <li><a class="team" id="6">FC Chelsea</a></li>
  <li><a class="team" id="2">FC Arsenal</a></li>
  <li><a class="team" id="1">AFC Bournemouth</a></li>
  <li><a class="team" id="19">West Ham United</a></li>
  <li><a class="team" id="16">FC Southapmton</a></li>
  <li><a class="team" id="8">FC Everton</a></li>
  <li><a class="team" id="7">Crystal Palace</a></li>
  <li><a class="team" id="5">Cardiff City</a></li>
  <li><a class="team" id="4">FC Burnley</a></li>
  <li><a class="team" id="9">Fulham</a></li>
  <li><a class="team" id="3">Brighton & Hove Albion</a></li>
  <li><a class="team" id="15">Newcastle United</a></li>
  <li><a class="team" id="10">Huddersfield Town</a></li>
  <li><a class="team" id="20">Wolverhampton Wand.</a></li>
  <li><a class="team" id="18">FC Watford</a></li>
</ul>