Javascript JQuery集合数组突然变成domhtmldevelment

Javascript JQuery集合数组突然变成domhtmldevelment,javascript,jquery,dhtml,Javascript,Jquery,Dhtml,在我的代码中,我有一个函数,它接受JQuery集合的数组,并通过for循环将一些代码应用于每个集合 问题是,只要我引用一个对象,它就会以某种方式变成一个HtmlLevel,而不是一个collection对象 function vacant_now($timetables, now){ console.log("1:" + $timetables);//still fine for (var i=0; i < $timetables.length; i++){ console.log

在我的代码中,我有一个函数,它接受JQuery集合的数组,并通过for循环将一些代码应用于每个集合

问题是,只要我引用一个对象,它就会以某种方式变成一个HtmlLevel,而不是一个collection对象

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(){ ...

我被难住了。

使用jQuery,您可以使用
。每个
方法,在您必须“jQuery”对象之后:

function vacant_now($timetables, now) {
    $timetables.each(function() {
        var $timetable = $(this);
    });
}
jquery集合实际上是DOM元素的数组

您也可以对
使用一个
,语法更详细一点。
在任何情况下,都必须jquery对象


例如:

在jQuery对象上使用[i]返回dom元素。如果希望jQuery对象位于特定索引处,请使用.eq()函数:

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

示例-

jQuery集合数组是一个DOM元素数组

执行此操作:
$('#myDiv')[0]
返回与以下内容相同的内容:
document.getElementByID('myDiv')

解决方案: 使用
$('.timeline').eq(索引)

for(变量i=0;i<$timetables.length;i++){
$timetables.eq(i);
}
干杯

console.log("2:" + $timetables.eq(i));
for (var i=0; i < $timetables.length; i++){
    $timetables.eq(i);

}