2011-07-22 22 views
2

私はdatatable jqueryプラグインで飾られたテーブルの束を持つWebページを持っています。ページが読み込まれると、ページは非表示になります。次に、私はインデックスに基づいてそれらを切り替える機能を持っています: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); 
     } 
    }); 
} 

正常に動作しますが、それはだそれ.....私はちょうどこれを手放すことはできません。

なぜ最初のコードが機能しなかったのですか?それは[i]がjqueryオブジェクトを通常のJSオブジェクトに取り込み、結果としてjqueryの機能が失われたからですか?

おかげで、

答えて

3

使用.eq()

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

jQueryの配列は、あなたがそれらにアクセスするときにDOM関数が用意されていなく、jQueryの方法、各インデックスの基本となるDOM要素を含んでいます。あなたができるよう

1
$(".dataTables_wrapper")[i] 

は、STD Javaスクリプトのオブジェクトではなく、jQueryオブジェクトを返します。

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

またはn番目の子または類似

を使用します