是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
当前回答
No.
调用document.getElementById('id')将返回一个原始DOM对象。
调用$('#id')将返回一个jQuery对象,该对象包装DOM对象并提供jQuery方法。
因此,只能在$()调用中调用css()或animate()等jQuery方法。
你也可以写$(document.getElementById('id')),它将返回一个jQuery对象,等价于$('#id')。
你可以通过编写$('#id')[0]从jQuery对象中获得底层DOM对象。
其他回答
No.
调用document.getElementById('id')将返回一个原始DOM对象。
调用$('#id')将返回一个jQuery对象,该对象包装DOM对象并提供jQuery方法。
因此,只能在$()调用中调用css()或animate()等jQuery方法。
你也可以写$(document.getElementById('id')),它将返回一个jQuery对象,等价于$('#id')。
你可以通过编写$('#id')[0]从jQuery对象中获得底层DOM对象。
jQuery是基于JavaScript构建的。这意味着它只是javascript。
document.getElementById ()
getelementbyid()方法返回具有指定值的ID属性的元素,如果不存在具有指定ID的元素则返回null。一个ID在一个页面中应该是唯一的。
Jquery(美元)
以id选择器作为参数调用jQuery()或$()将返回一个包含0个或1个DOM元素的集合的jQuery对象。每个id值在文档中只能使用一次。如果多个元素被分配了相同的ID,使用该ID的查询将只选择DOM中第一个匹配的元素。
以上所有答案都是正确的。如果你想看到它的运行,不要忘记你在浏览器中有控制台,在那里你可以清楚地看到实际的结果:
我有一个HTML:
<div id="contents"></div>
转到控制台(cntrl+shift+c),使用这些命令可以清楚地看到结果
document.getElementById('contents')
>>> div#contents
$('#contents')
>>> [div#contents,
context: document,
selector: "#contents",
jquery: "1.10.1",
constructor: function,
init: function …]
正如我们所看到的,在第一种情况下,我们得到了标签本身(也就是说,严格地说,一个HTMLDivElement对象)。在后者中,我们实际上没有一个普通对象,而是一个对象数组。正如上面其他答案所提到的,你可以使用以下命令:
$('#contents')[0]
>>> div#contents
不完全是! !
document.getElementById('contents'); //returns a HTML DOM Object
var contents = $('#contents'); //returns a jQuery Object
在jQuery中,获得与document相同的结果。getElementById,您可以访问jQuery对象并获得对象中的第一个元素(记住JavaScript对象的行为类似于关联数组)。
var contents = $('#contents')[0]; //returns a HTML DOM Object
关于速度差异的注释。将以下代码片段附加到onclick调用:
function myfunc()
{
var timer = new Date();
for(var i = 0; i < 10000; i++)
{
//document.getElementById('myID');
$('#myID')[0];
}
console.log('timer: ' + (new Date() - timer));
}
交替地注释掉一个,然后注释掉另一个。在我的测试中
文档。getElementbyId平均约为35ms(在大约15次运行时,从25ms到52ms波动)
另一方面,
jQuery平均大约200ms(在大约15次运行中,范围从181ms到222ms)。 从这个简单的测试中,您可以看到jQuery花费了大约6倍的时间。
当然,这是超过10000次迭代,所以在一个更简单的情况下,我可能会使用jQuery,以方便使用和所有其他很酷的东西,如.animate和. fadeto。但是是的,技术上getElementById要快得多。