3

私はブログサイトでカスタムテーマのWebサイトに取り組んでいます。レビューセクションが欲しいのですが、ページの更新ごとに1つのレビューだけが必要です。jQueryまたはjavascript(どちらかはわかりません)を使用してスクリプトを記述し、配列からランダムな要素を選択する方法があるかどうか疑問に思いました(すべてのレビューには個別の要素があり、各人が異なるdivを持っています別のレビューでID)、#reviewsというdiv内にその要素を表示し、他の要素を非表示にしますか?非常に紛らわしいように聞こえますが、基本的に、レビューを選択してレビューセクションに配置するには、jQueryまたはjavascriptのいずれかが必要です。誰かが助けることができればそれは大いにありがたいです。

4

3 に答える 3

5

ここにjsFiddleの 1 つの方法があります

<aside id="reviews">
    <article class="review"></article>
    <article class="review"></article>
    <article class="review"></article>
</aside>​

var $reviews = $('#reviews .review').hide();
$reviews.eq(Math.random()*$reviews.length).show();​

ただし、他のレビューをある時点 (スライダーまたはページネーション) で公開する予定がない限り、実際にはサーバー側で行う必要があります。コンテンツを非表示にするためだけにコンテンツを送信するのは少しもったいないです。

于 2012-04-14T17:17:09.237 に答える
1

jQueryJavaScript です。配列からランダムな要素を取得するには、Math.random() を使用します。

function getRandomElement(a) {
    return a[Math.floor(Math.random() * a.length)];
}
于 2012-04-14T17:13:06.627 に答える
0

JavaScript オブジェクトを DOM にバインドするのに最適な knockout.js を使用します。オブジェクトの配列を埋めて、それを div にデータバインドできます。配列のランダムな要素をdivにバインドするたびに。データ バインディングは非常に単純です。

<p>First name: <input data-bind="value: firstName" /></p>


// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {
 this.firstName = "Bert";  
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());

その他の例については、次の優れたチュートリアルを参照してください: Knockout.js チュートリアル

于 2012-04-14T21:11:48.970 に答える