0

私は動的に div を作成しており、それらを最後の位置ではなくランダムな位置で親 div に追加したいと考えています。

                        var opt = document.createElement("div");
                        var txt = document.createTextNode(str);
                        opt.appendChild(txt);


                        //get the top and left positioning of the elements
                        var x = Math.floor(Math.random() * (400));
                        var y = Math.floor(Math.random() * (50));

                        opt.style.top = y + "px";
                        opt.style.left = x + "px";
                        opt.style.zIndex = zindex;   

                        $("#parentDiv").append(opt);

しかし問題は、jquery の append 関数または add 関数が div をスタックの最後の位置に置くことです。他のdivの間にランダムに配置したい...助けて

4

2 に答える 2

3
var $parent = $('#parentDiv');
var $children = $parent.children();             // get possible children
var n = $children.length;                       // there are n children
var pos = Math.floor((n + 1) * Math.random());  // and n+1 insert points

if (n === pos) {
    $parent.append(opt);                        // append after last
} else { 
    $children[pos].before(opt);                 // or insert before
}

EDITこれをクリーンアップして、子供がいない/最後の子のケースをマージしました。

于 2012-08-23T11:15:30.070 に答える
-1

既に div がある場合:

var i = Math.round(Math.random() * $('#parentDiv').length);
if (i != $('#parentDiv div').length) $('#parentDiv div').eq(i).before(opt);
else $('#parentDiv div').eq(i - 1).after(opt);
于 2012-08-23T11:15:13.783 に答える