Javascript 如何使用jquery对随机元素进行排序?

Javascript 如何使用jquery对随机元素进行排序?,javascript,jquery,Javascript,Jquery,如何对随机元素进行排序(链接),使它们以其他顺序出现?以下是我的js代码: $(document).ready(function(){ if ($.browser.msie && jQuery.browser.version.substr(0,1)<='6' && readCookie('already_submit')!=1) { var iemessage = document.createElement("div");

如何对随机元素进行排序(链接),使它们以其他顺序出现?以下是我的js代码:

$(document).ready(function(){    
  if ($.browser.msie && jQuery.browser.version.substr(0,1)<='6' && readCookie('already_submit')!=1) { 

    var iemessage = document.createElement("div");
      $(iemessage).addClass("ie-message");
      $('body').append(iemessage);   
      var frame = document.createElement("iframe");
        $(frame).addClass("nsframe");
        $(iemessage).append(frame);  

      var alerterror = document.createElement("div");
          $(alerterror).addClass("alert error");
          $(iemessage).append(alerterror);

      var close = document.createElement("div");
          $(close).addClass("close-text");
          $(alerterror).append(close);
          var textclose = document.createElement("div");
              $(textclose).addClass("text-img");
              $(textclose).text("close");
              $(close).append(textclose);

      var h2 = document.createElement("h2");
          $(h2).text("Sorry, your web-browser is outdated...");
          $(alerterror).append(h2);

      var h3 = document.createElement("h3");
          $(h3).text("Our site could be displayed not correctly in your browser.");
          $(alerterror).append(h3);

      var p = document.createElement("p");
          $(p).text("We recommend you install new version of web-browser:");
          $(alerterror).append(p);


      var browserslist = document.createElement("div");
          $(browserslist).addClass("browsers-list");
          $(iemessage).append(browserslist);

          var achrome = document.createElement("a");
              $(achrome).attr("href", "http://www.google.com/chrome");
              $(browserslist).append(achrome);
              var spanchrome = document.createElement("span");
                  $(spanchrome).addClass("browser-button chrome");
                  $(spanchrome).text("Google Chrome");
                  $(achrome).append(spanchrome);

          var afirefox = document.createElement("a");
              $(afirefox).attr("href", "http://www.mozilla.com/firefox/");
              $(browserslist).append(afirefox);
              var spanfirefox = document.createElement("span");
                  $(spanfirefox).addClass("browser-button firefox");
                  $(spanfirefox).text("Mozilla Firefox");
                  //$(afirefox).append(spanfirefox);

          var aopera = document.createElement("a");
              $(aopera).attr("href", "http://www.opera.com/download/");
              $(browserslist).append(aopera);
              var spanopera = document.createElement("span");
                  $(spanopera).addClass("browser-button opera");
                  $(spanopera).text("Opera");
                  //$(aopera).append(spanopera);

          var asafari = document.createElement("a");
              $(asafari).attr("href", "http://www.apple.com/safari/download/");
              $(browserslist).append(asafari);
              var spansafari = document.createElement("span");
                  $(spansafari).addClass("browser-button safari");
                  $(spansafari).text("Apple Safari");
                  $(asafari).append(spansafari);

          var aexplorer = document.createElement("a");
              $(aexplorer).attr("href", "http://www.microsoft.com/windows/Internet-explorer/default.aspx");
              $(browserslist).append(aexplorer);
              var spanexplorer = document.createElement("span");
                  $(spanexplorer).addClass("browser-button ie");
                  $(spanexplorer).text("Internet Explorer");
                  $(aexplorer).append(spanexplorer);           

    $(iemessage).toggle();
    $('.close-text').mouseover(function() {
        $('.close-text').css({"border-bottom":"1px solid #000"});
        $('.close-text').css({"color":"#959595"});
        $('.close-text').css({"background":"url(/assets/browsers/button-close-hover.png) 100% 100% no-repeat"});
    });  
    $('.close-text').mouseleave(function() {
        $('.close-text').css({"border-bottom":"none"});
        $('.close-text').css({"color":"#4e4e4e"});
        $('.close-text').css({"background":"url(/assets/browsers/button-close.png) 100% 100% no-repeat"});
    });   
    $('.close-text').click(function() {
        $('.ie-message').hide();
        createCookie('already_submit', 1, 0);
    });          
  }

  function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
  }

  function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
  }

  function eraseCookie(name) {
    createCookie(name,"",-1);
  }
});

等等。如何使用我的代码样式来实现这一点

将数组洗牌到位的函数:

function shuffle(array) {
  var i = array.length;
  if(i > 1)
    while(--i) {
      var j = Math.floor(Math.random() * (i + 1));

      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }

  return array;
}
将您的
afirefox
aopera
等添加到阵列中:

var links = [afirefox, ..., aopera];
附加无序列表:

var $browserslist = $(browserslist);
$browserslist.append.apply(browserslist, shuffle(links));

编辑:我删除了我不好的解决方案,转而建议
Fisher-Yates
。请参阅-这似乎与您正在执行的操作完全相同。

用于将数组洗牌到位的函数:

function shuffle(array) {
  var i = array.length;
  if(i > 1)
    while(--i) {
      var j = Math.floor(Math.random() * (i + 1));

      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }

  return array;
}
将您的
afirefox
aopera
等添加到阵列中:

var links = [afirefox, ..., aopera];
附加无序列表:

var $browserslist = $(browserslist);
$browserslist.append.apply(browserslist, shuffle(links));

编辑:我删除了我不好的解决方案,转而建议
Fisher-Yates
。请看-这似乎与您正在做的事情完全相同。

将它们放入数组中,洗牌,按数组顺序追加。我在逻辑上知道这一点,但如何编码?我假设您知道如何创建数组,向其中添加元素并对其进行迭代。因此,如果剩下的唯一问题是如何洗牌,将它们放入数组中,洗牌,按照数组的顺序追加它们。我在逻辑上知道这一点,但如何编码?我假设您知道如何创建数组,向数组中添加元素并对其进行迭代。如果剩下的唯一问题是如何洗牌的话,.pavel:算了吧,这对我来说是个坏建议。请参阅更新的答案。您不需要“在每次通话中随机选择”。只需创建
afirefox
,将您的
spanfirefox
附加到它,但不要将
afirefox
附加到
browserlist
。相反,先创建所有的<代码> A <代码> >标签,然后将它们添加到一个数组中,然后将数组拖曳,然后以随机顺序将它们全部添加到<代码> BuffSerList中。我看到,我已经写了一个,如果我的答案是让您满意的,请考虑接受它。帕维尔:算了吧,这对我来说是个坏建议。请参阅更新的答案。您不需要“在每次通话中随机选择”。只需创建
afirefox
,将您的
spanfirefox
附加到它,但不要将
afirefox
附加到
browserlist
。相反,先创建所有的<代码> A <代码> >标签,然后将它们添加到一个数组中,然后将数组拖曳,然后以随机顺序将它们全部添加到<代码> BuffSerList中。我看到,我已经写了一个,如果我的答案是让您满意的,请考虑接受它。