【问题标题】:Select random <li> element选择随机 <li> 元素
【发布时间】:2013-10-14 01:45:12
【问题描述】:

我正在尝试为我的 HTML 5 播放器制作一个随机播放按钮。我的播放器设置如下:

    $('.nextbutton').on("click", function(){
    var next = $('li.playing').next();
        if (!next.length) next = $('#stuff ul li').first();
        next.addClass('playing').siblings().removeClass('playing');
        var title = $('a#tunes img', next).attr("title");
            $("a.songtitle span").text(title);
        var artist = $('a#tunes img', next).attr("artist");
            $("a.songartist span").text(artist);
        audio.load($('a#tunes', next).attr('data-src'));
        audio.play();
    });

此代码可以转到下一首歌曲,但我如何更改它以使其选择随机的 &lt;li&gt; 元素而不是 .next(); &lt;li&gt;?感谢您的时间和考虑。希望你能帮助我!

【问题讨论】:

    标签: javascript jquery random html5-audio shuffle


    【解决方案1】:
    var next = Math.floor(Math.random() * jQuery('#stuff ul li').length + 1));
    var nextLi = jQuery('#stuff ul li').get(next);
    

    它会得到0到lis计数之间的随机数,然后得到这个li

    【讨论】:

    • 感谢您的宝贵时间!这似乎对我不起作用。我创建了一个小提琴:jsfiddle.net/MXQaz/23。也许你可以帮我看看我做错了什么。随机播放按钮在 javascript 中标记。谢谢!
    • @jick 将$('#stuff ul li').get(rand) 更改为$($('#stuff ul li').get(rand)) 以将li 转换为jquery 对象。
    • 做到了!除了我还必须从“jQuery('#stuff ul li').length + 1);”中删除“+1”。再次非常感谢!如果您想查看它,这是更新的小提琴。 jsfiddle.net/MXQaz/32
    【解决方案2】:

    你可以使用像

    这样的随机数生成器
    var rand =  Math.floor(Math.random() * jQuery('#stuff ul li').length + 1);
    

    var rand =  Math.ceil(Math.random() *( jQuery('#stuff ul li').length + 1));
    

    用于获取列表中的随机歌曲编号,然后像这样获取对应的项目:

    var next = $('#stuff ul li').get(rand);
    

    【讨论】:

    • 您好,谢谢您的帮助!那些似乎没有用。我创建了一个小提琴:jsfiddle.net/MXQaz/23。也许你可以告诉我我做错了什么?随机播放按钮在 javascript 中标记。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2011-03-03
    • 2014-04-21
    • 1970-01-01
    相关资源
    最近更新 更多