con*_*att 96 jquery jquery-selectors
我是jQuery的新手,我想知道jQuery get()
和eq()
函数之间的区别.我可能会误解get()
函数的作用,但我觉得奇怪的是我无法在同一行中返回的元素上返回一个函数.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
Run Code Online (Sandbox Code Playgroud)
hun*_*ter 16
get()
返回一个DOM元素,:eq()
然后eq()
返回一个jQuery元素.由于DOM元素没有方法,fadeIn()
因此失败.
描述:检索jQuery对象匹配的DOM元素.
http://api.jquery.com/eq-selector/
描述:选择匹配集中索引n处的元素.
use*_*716 12
get(0)
(docs) 返回集合中的第一个DOM元素.
eq(0)
(docs) 返回集合中的第一个DOM元素,包装在jQuery对象中.
这就是为什么.fadeIn("slow");
当你这样做时不起作用的原因.get(0)
.DOM元素没有fadeIn()
方法,但jQuery对象有.
建立其他答案:
$('h2').get(0) === $('h2').eq(0)[0] //true
$( $('h2').get(0) ) === $('h2').eq(0) //true
Run Code Online (Sandbox Code Playgroud)
eq(i)
检索接收者集合中的第i个成员作为jQuery
对象,同时get(i)
返回第i个位置的成员作为DOM元素.
这不起作用的原因:
$("h2").get(0).fadeIn("slow");
Run Code Online (Sandbox Code Playgroud)
是因为h2
DOM元素没有调用的方法fadeIn
.
你应该eq(0)
在这里使用.