Webページの一部の要素が表示されるように並べ替えたい。この質問への回答に続いて、私は次のコードを持っています:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
function reorder() {
var grp = $(".myItems").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();
$(".myItems").append($(grp));
}
</script>
</head>
<body onload="reorder();">
<div class="myItems">
<div class="item" title="Row 1">1</div>
<div class="item" title="Row 2">2</div>
<div class="item" title="Row 3">3</div>
</div>
</body>
</html>
私が抱えている問題は、<div>
タグが表示される順序に応じて、タグのコンテンツも変更する必要があることです。この例では、title
タグの行識別子を変更する必要があります。
たとえば、更新後、考えられる結果は次のようになります。
<div class="myItems">
<div class="item" title="Row 1">2</div>
<div class="item" title="Row 2">1</div>
<div class="item" title="Row 3">3</div>
</div>
また
<div class="myItems">
<div class="item" title="Row 1">3</div>
<div class="item" title="Row 2">2</div>
<div class="item" title="Row 3">1</div>
</div>
表示される番号が変わっても、タイトルの順序は同じままであることに注意してください。