2008-09-02 5 views
3

jQueryとPrototpye JavaScriptライブラリの両方で、ハードコードされた数値を受け入れるにもかかわらず、変数を使用してリスト項目の要素をインデックス番号で選択することを許可しません。例えばjQueryとプロトタイプセレクタの狂気

、プロトタイプではこの作品:

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

をしかし、これは私が数または整数として変数をキャストしようとどんなに動作しません。私が手にjQueryで

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

を同じような奇妙さ。これは動作します:

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

しかしcurrentPageにの値が5であっても、これは再び動作しませんし、その種類は数ある:

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

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

答えて

1

ハードコードされた数字がうまくいくのは奇妙ですが、私の要素セレクタではもっと具体的にする必要があるようです。

jQuery('#pagination-digg li').eq(currentPage).addClass("active"); 
5

確かにcurrentPageは整数ですか?

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

のように試してみてください。それが機能する場合は、Integerにキャストしようとする必要があります。

2

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

関連する問題