使用Javascript/jQuery在表中Shuffle <td>'s

Shuffle <td>'s in a table with Javascript/jQuery

本文关键字:td Shuffle Javascript jQuery 使用      更新时间:2023-09-26

我真的很纠结,所以也许你们中有人有一些漂亮的提示?

我想做什么我想创建一个包含两列("name"answers"rating")的表。我有5行。

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

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

但是:我想对前4行的"评分"进行洗牌,这样前两行的"评分"就不会总是很高,而第三和第四行的"评分"也不会总是很低。我想随机洗牌

第5行不应受到影响。

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

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);

非常非常感谢!

有许多解决方案可以使用javascript对数组进行洗牌。如果我正确地理解了您的问题,那么应该可以这样做:http://jsfiddle.net/HT89v/6/

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