4

ID を持つ div を取得して、それらが表示される順序をランダム化しようとしています。おそらくこれを行うスクリプトを見つけましたが、私の人生では、なぜ私のものが機能しないのかわかりません.

基本的に、ページが読み込まれると、HTML は次のように表示されます。

<div class="main">
   <div id="box">1</div>
   <div id="box">2</div>
   <div id="box">3</div>
   <div id="box">4</div>
</div>

ただし、コードを適用すると、(ブラウザーで) 表示される順序が次のようにランダム化されます。

<div class="main">
   <div id="box">3</div>
   <div id="box">1</div>
   <div id="box">4</div>
   <div id="box">2</div>
</div>

そして、これがすべてを機能させていると思われるJavaScriptです。

 function reorder() {
           var grp = $(".main").children();
           var cnt = grp.length;

           var temp,x;
           for (var i = 0; i < cnt; i++) {
               temp = grp[i];
             x = Math.floor(Math.random() * cnt);
             grp[i] = grp[x];
             grp[x] = temp;
         }
         $(grp).remove();
         $(".main").append($(grp));
       }

id プロパティがあったからだと思ったのですが、それを取り除いて単純な古い div タグにしても機能しません :/

これは、問題のコードの js フィドルのようなものです... js フィドル

これに似た質問がいくつかありますが、それらはすべて古いトピックなので、私が新しい質問を作成することを誰も気にしないことを願っています. それがまだ明らかでない場合、私はまだJavaScriptにかなり慣れていません:D

4

2 に答える 2

5

変えるだけ

<div class=".main">
   <div id="#box">1</div>
   <div id="#box">2</div>
   <div id="#box">3</div>
   <div id="#box">4</div>
</div>

<div class="main">
   <div >1</div>
   <div >2</div>
   <div >3</div>
   <div >4</div>
</div>

2 つのエラー:

  • あなたが探すように「メイン」で".main"あるべきです$(".main").children()
  • "#box"複数の要素に使用していた ID

あなたのフィドルでは、jQuery のインポートも忘れていました。

デモンストレーション(「Run with JS」をクリック)

于 2013-04-17T19:11:48.597 に答える