.children() 不适用于 jquery return 的指定索引
.children() does not work on specified index of jquery return
我正在尝试获取 jquery 调用返回的第 n 个元素的子元素。例如:
var kids = $('div')[7].children();
但是,关于 children()
:
我一直收到这个错误
Uncaught TypeError: object is not a function
有人可以解释为什么会这样吗? children()
只要我不在索引元素上调用它就可以正常工作。
您正在 javascript 对象中使用子方法,即 $('div')[7]
。要使用 jquery 方法,您需要使用 jquery 对象而不是 javascript 对象。
使用eq方法:
var kids = $('div').eq(7).children();
因为你指定索引[7]
后,它不再是jQuery object了。因此,您正在 DOM 元素上调用 jQuery 方法(这不起作用)。
您可以改用 .eq()
method:
$('div').eq(7).children();
您还可以使用:
$($('div')[7]).children();
值得指出的是,这是可行的,因为 DOM 元素包含在 $()
中 - 从而将其变成 jQuery 对象。
当您对 jquery 列表使用数组语法时,您会得到一个文档节点,而不是 jquery 元素。请改用 $('div').eq(7).children()
。
我正在尝试获取 jquery 调用返回的第 n 个元素的子元素。例如:
var kids = $('div')[7].children();
但是,关于 children()
:
Uncaught TypeError: object is not a function
有人可以解释为什么会这样吗? children()
只要我不在索引元素上调用它就可以正常工作。
您正在 javascript 对象中使用子方法,即 $('div')[7]
。要使用 jquery 方法,您需要使用 jquery 对象而不是 javascript 对象。
使用eq方法:
var kids = $('div').eq(7).children();
因为你指定索引[7]
后,它不再是jQuery object了。因此,您正在 DOM 元素上调用 jQuery 方法(这不起作用)。
您可以改用 .eq()
method:
$('div').eq(7).children();
您还可以使用:
$($('div')[7]).children();
值得指出的是,这是可行的,因为 DOM 元素包含在 $()
中 - 从而将其变成 jQuery 对象。
当您对 jquery 列表使用数组语法时,您会得到一个文档节点,而不是 jquery 元素。请改用 $('div').eq(7).children()
。