将jQuery元素转换为HTML元素

78

我有一个jQuery元素,但是我必须将其发送到一个只接受HTML元素的函数中。如何将jQuery元素转换为HTML元素?

我该如何将jQuery对象转换为DOM元素?


7
你并不需要进行转换,只需通过其数字索引从jQuery对象中获取它。 - user113716
2个回答

121

尝试使用myJQueryElement.get(0)myJQueryElement[0]。(get()在需要负索引时最有用,例如在get()的文档中所述。)


警告:get(0) 不会返回内部元素。 - Francois
“负索引” - 负索引是从匹配集合的末尾开始计数的,因此此示例将返回列表中的最后一项。例如,$('div').get(0); 将返回最后一个 div 元素。 - Aakash
简而言之,$("# foo").get(0)$("# foo")[0] 的作用相同,但是 $("# foo").get(0) 的速度较慢。 - GIA

30

$("#foo")[0]将会获取到一个HTML元素。使用方括号的速度比使用.get()稍微快一点,但除非你需要执行数百万次,否则你可能不会注意到这点差别。点击此处查看性能测试结果。


16
就算运行了1000万次,括号也只需要花费150秒,而获取则需要170秒。我打赌除非你坐在那里数“1-Mississippi,2-Mississippi...”否则你根本无法注意到它们之间的差异。不管哪种方式,都选更易读的一种即可。(顺便说一句,我发表这个评论仅仅是想在句子中使用单词“Mississippilessly”。如果有人想和我讨论英国国教会的未来,我渴望使用“antidisestablishmentarianistically”这个词。) - Michael Lorton
1
很讽刺的是,你刚刚使用了 Mississippilessly,然后又提倡可读性,但你说得对。使用 get 函数时,如果不传参数,它会将 jQuery 对象转换为 DOM 对象数组;如果传入负数参数,则从末尾开始获取第 n 个。否则,它只是一个使用方括号的函数。 - Dennis
哦,我的天啊。这个问题让我花了几乎整整几天的时间。感谢您提供的答案! - void
1
@Malvolio 那个词不应该只是“establishmentarianistically”吗?因为(anti-)和(dis-)是两个相反的否定词。 - Denis G. Labrecque
1
@DenisG.Labrecque - 建立主义是指在一个没有国教的国家建立国教的信仰;反对废除主义是指在已经有国教的国家继续保留国教的信仰。就我所知,建立主义非常罕见 - 几乎没有人想要开始一个国教。反对废除主义是一种常见的保守立场:“我们一直有这种无稽之谈,所以我们应该一直保持。” - Michael Lorton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接