为什么document.getElementById的返回对象与$(".class")不同.last().get()?

out*_*d3r 0 javascript jquery dom

我不明白为什么差异(使用1.9.1):

document.getElementById("myId").children;
Run Code Online (Sandbox Code Playgroud)

输出DOM元素数组

但如果我这样做:

$("#myId").get().children;
Run Code Online (Sandbox Code Playgroud)

输出undefined 为什么?

jQuery .get()文档说:

.get()方法授予对每个jQuery对象下面的DOM节点的访问权限

那么,如果具有id = myId的DOM节点有子节点,为什么子节点为空?

如果我这样做,$("#myId")[0].children我得到与第一种方法(getElementById)相同的结果.不应该得到()做同样的事情吗?

Aru*_*hny 5

因为.get()返回一个数组.

$("#myId")[0].children
Run Code Online (Sandbox Code Playgroud)

或者使用.prop()之类的

$("#myId").prop('children')
Run Code Online (Sandbox Code Playgroud)

.得到()

检索jQuery对象匹配的元素.