2008-09-02 70 views
3

jQuery和Prototpye JavaScript庫都拒絕允許我使用變量通過索引號選擇列表項元素,儘管它們接受硬編碼的數字。jQuery和Prototype Selector Madness

例如,在原型工作的:

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

但是,這不會不管我如何努力投下變量數字或整數工作:

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

在jQuery中我得到類似的怪異。這將工作:

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

但是,即使當前頁的值是5,這將不會再工作,它的類型是數字:

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

我試圖創建一個JavaScript分頁系統和I需要在活動頁面按鈕上設置類。列表項元素是根據我需要的頁數動態創建的。

回答

1

它看起來像我只是需要在我的元素選擇器中更具體,雖然它是奇怪的,一個硬編碼的數字將工作。

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

你確定currentPage是一個整數嗎?嘗試是這樣的:

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

一個簡單的合理性檢查。如果可以的話,你應該試試Integer

2

確保currentPage變量在代碼中被正確訪問的範圍內。在訪問代碼之前,可以在代碼的其他地方更改變量嗎?諸如Firebug之類的工具可以幫助您在執行時添加斷點並查看變量的值。