JQuery 集合数组突然变成 DOM HTMLDivElement
在我的代码中,我有一个函数,它接受 JQuery 集合数组,并通过 for 循环对每个集合应用一些代码。
问题是,一旦我引用一个,它就会以某种方式变成 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);
我被难住了。
In my code I have a function that accepts an array of JQuery collections and applies some code to each via a for-loop.
The problem is that as soon as I reference one it somehow becomes a HTMLDivElement instead of a collection object.
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(){ ...
it's called like this:
vacant_now($page.find(".timetable"), now);
I'm stumped.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
jQuery 集合数组是 DOM 元素的数组。
这样做:
$('#myDiv')[0];
返回与以下内容相同:
document.getElementByID('myDiv');
解决方案:
使用
$('.timetable').eq(index);
干杯
The jQuery collection array is an array of DOM elements.
Doing this:
$('#myDiv')[0];
returns the same as:
document.getElementByID('myDiv');
Solution:
Use
$('.timetable').eq(index);
Cheers
在 jQuery 对象上使用 [i] 返回 dom 元素。如果您希望 jQuery 对象位于特定索引处,请使用 .eq() 函数:
示例 - http://jsfiddle。净/8FeEf/1/
Using [i] on a jQuery object returns the dom element. If you want the jQuery object at a specific index use the .eq() function:
Example - http://jsfiddle.net/8FeEf/1/
使用 jQuery,您可以使用
.each
方法,然后必须“jquerify”对象:jquery 集合实际上是 DOM 元素的数组。
您还可以使用
for
,语法有点冗长。在所有情况下,您都必须jquerify 对象。
示例: http://jsfiddle.net/FTcpD/
With jQuery you can use the
.each
method, and after you must 'jquerify' the object :A jquery collection is in fact an array of DOM elements.
You can also use a
for
, the syntaxe is a little bit more verbose.In all case, you must jquerify the object.
Exemple : http://jsfiddle.net/FTcpD/