首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有Javascript/jQuery的表中洗牌<td>

在具有Javascript/jQuery的表中洗牌<td>
EN

Stack Overflow用户
提问于 2014-05-06 17:10:22
回答 1查看 1.5K关注 0票数 0

我真的很纠结,所以也许你们中的一些人有一些美丽的暗示?

我想做的事情,,我想要创建一个包含两个列(“名称”和“等级”)的表。我有5排。

  • 这些行中的2行应该在6-10之间有一个随机的“等级”。
  • 其他2行应具有1-5之间的随机“评级”。
  • 1行(最后一排)应该有7-10之间的随机评级。

到目前为止,没有问题:到目前为止,这是我的jsFiddle:http://jsfiddle.net/HT89v/2/

但是:我想对前4行的“评级”进行洗牌,这样前两行的“评级”并不总是很高,而第3和第4行的“评级”并不总是很低。我想随机洗牌。

第5行不应受影响。。

我试图在jsfiddle中实现.shuffle插件,但我不知道自己做错了什么。

代码语言:javascript
复制
function noNorm(){  
    document.getElementById("rating4").innerHTML = [Math.floor(Math.random()*5) + 6];

    for (var i = 0; i <= 1; i++){
        document.getElementById("rating"+i).innerHTML = [Math.floor(Math.random()*5) + 6];
    };

    for (var i = 2; i <= 3; i++){
        document.getElementById("rating"+i).innerHTML = [Math.floor(Math.random()*5) + 1];
    };
};

noNorm();

jQuery(function($){
    $('#rating0', '#rating1', '#rating2', '#rating3').shuffle();
});


(function($){

    $.fn.shuffle = function() {
        return this.each(function(){
            var items = $(this).children().clone(true);
            return (items.length) ? $(this).html($.shuffle(items)) : this;
        });
    }

    $.shuffle = function(arr) {
         for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
         return arr;
    }

})(jQuery);

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-06 17:34:05

有许多解决方案可以使用javascript来洗牌数组。如果我理解您的问题是正确的,这应该是有效的:http://jsfiddle.net/HT89v/6/

在给ratings[]赋值之前,我会对整个ratings[4]数组进行洗牌,这样第5行就不会受到影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23500834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档