2011-07-22 208 views
2

我有一堆用jQuery數據表插件裝飾的表格。當頁面被加載時,它們被隱藏。然後我有一個功能,根據索引切換它們:jQuery數組混淆

function expand_job(i) { 
    $(".dataTables_wrapper")[i].show(); 
} 

但它沒有工作。瀏覽器抱怨show()不是一個函數。作爲解決辦法,我正在做這樣的事情:

function expand_job(i) { 
    $(".dataTables_wrapper").each(function(idx) { 
     if (i == idx) { 
      $(this).slideToggle(300); 
     } 
    }); 
} 

這工作正常,但它是.....我只是不能讓這個去。

那麼爲什麼第一塊代碼不起作用?這是因爲[我]把一個jquery對象放入正常的JS對象中,結果失去了jQuery的功能?

感謝,

回答

3

使用.eq()

$(".dataTables_wrapper").eq(i).show(); 

jQuery的數組包含潛在的DOM元素在每個索引處,所以當你訪問他們的DOM功能都可用,但不是jQuery方法。

1
$(".dataTables_wrapper")[i] 

返回一個std Java腳本對象,而不是一個jQuery對象,所以,你可以:

$($(".dataTables_wrapper")[i]).show() 

,或者使用n個子或類似