2011-08-10 4 views
2

私のコードでは、JQueryコレクションの配列を受け取り、forループを介してそれぞれにいくつかのコードを適用する関数があります。JQueryコレクション配列が突然DOM HTMLDivElementになる

問題は、私が1つを参照するとすぐに、何らかの形でコレクションオブジェクトではなくHTMLDivElementになります。

function vacant_now($timetables, now){ 
console.log("1:" + $timetables);//still fine 
for (var i=0; i < $timetables.length; i++){ 
    console.log("2:" + $timetables[i]);//problem is here 
    var $timetable = $timetables[i]; 
    console.log("3:" + $timetable); 
    $timetable.find(".booking").each(function(){ ... 

それがこのように呼ばれています:

vacant_now($page.find(".timetable"), now); 

私は困惑。

答えて

3

この操作:$('#myDiv')[0]; リターンを同じ:document.getElementByID('myDiv');

ソリューション: 使用$('.timetable').eq(index);

for (var i=0; i < $timetables.length; i++){ 
    $timetables.eq(i); 

} 

乾杯

1

はjQueryを使って、あなたは.eachメソッドを使用して、あなた必要があります「jquerify」オブジェクトの後にすることができます

function vacant_now($timetables, now) { 
    $timetables.each(function() { 
     var $timetable = $(this); 
    }); 
} 

jqueryのコレクションは、実際にはDOM要素の配列です。

また、forを使用することもできます。構文は少し冗長です。 いずれの場合も、オブジェクトをjquerifyする必要があります。

Exemple:jQueryオブジェクトの[I]を用いhttp://jsfiddle.net/FTcpD/

2

は、DOM要素を返します。あなたが特定のインデックスにjQueryオブジェクトが.EQ()関数を使用したい場合:

console.log("2:" + $timetables.eq(i)); 

例 - jQueryの収集・アレイはDOM要素の配列であるhttp://jsfiddle.net/8FeEf/1/

関連する問題