forループがあります。
for (var i = 0; i < 15; i++) {
var gridResult = Math.floor(Math.random() * 77) + 1;
$(['data-x='+gridResult+']').append('<div></div>');
}
<html>
<div class="grid" data-x="0"></div>
...
<div class="grid" data-x="77"></div>
前の反復の1つですでに要素が割り当てられていることが検出された場合は、この手順を繰り返して、同じ要素に2つのdivが割り当てられないようにします。
私はそれを使ってみました:
if ($(this).children().length > 1) {
return;
}
しかし、2つのdivがアタッチされた要素がまだあるため、それはうまくいきませんでした。
前もって感謝します。
目標を達成するためif
に、ループ内に条件を追加できます。ターゲット内に子要素が見つかった場合は、1をデクリメントしi
て、ループを強制的に繰り返すことができます。これを試して:
for (var i = 0; i < 15; i++) {
var gridResult = Math.floor(Math.random() * 77) + 1;
let $target = $(['data-x=' + gridResult + ']');
if ($target.children().length) {
i--; // repeat the action
} else {
$target.append('<div></div>');
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加