4

jQueryライブラリとPrototpyeJavaScriptライブラリはどちらも、ハードコードされた番号を受け入れますが、変数を使用してインデックス番号でリストアイテム要素を選択することを許可していません。

たとえば、プロトタイプではこれは機能します。

$$('li')[5].addClassName('active');

しかし、これは、変数を数値または整数としてキャストしようとしても機能しません。

$$('li')[currentPage].addClassName('active');

jQueryでも同様の奇妙さがあります。これは機能します:

jQuery('li').eq(5).addClass("active");

ただし、currentPageの値が5で、そのタイプがnumberであっても、これは再び機能しません。

jQuery('li').eq(currentPage).addClass("active");

JavaScriptページ付けシステムを作成しようとしていますが、アクティブなページボタンでクラスを設定する必要があります。リストアイテムの要素は、必要なページ数に応じて動的に作成されます。

4

3 に答える 3

5

currentPageそれが整数であることは確かですか?次のようなものを試してください:

var currentPage = 5;
jQuery('li').eq(currentPage);

簡単な健全性チェックとして。それが機能する場合は、にキャストしてみてくださいInteger

于 2008-09-02T20:43:23.163 に答える
2

ハードコードされた数値が機能するのは奇妙ですが、要素セレクターをより具体的にする必要があるようです。

jQuery('#pagination-digg li').eq(currentPage).addClass("active");
于 2008-09-02T22:13:31.013 に答える
2

currentPage変数が、アクセスされているコードで正しくスコープされていることを確認してください。変数にアクセスする前に、コード内の別の場所で変数を変更できますか?Firebugのようなツールは、実行時にブレークポイントを追加し、変数の値を確認するのに役立ちます。

于 2008-09-02T20:53:30.970 に答える