是这样的:

var contents = document.getElementById('contents');

和这个一样:

var contents = $('#contents');

jQuery加载?


当前回答

不,实际上结果是一样的:

$('#contents')[0] 

jQuery不知道该查询将返回多少结果。返回的是一个特殊的jQuery对象,它是与查询匹配的所有控件的集合。

jQuery如此方便的部分原因是,在这个对象上调用的大多数方法看起来是针对一个控件的,实际上是在一个循环中调用集合中的所有成员

当您使用[0]语法时,您从内部集合中获取第一个元素。此时,您将得到一个DOM对象

其他回答

No.

调用document.getElementById('id')将返回一个原始DOM对象。

调用$('#id')将返回一个jQuery对象,该对象包装DOM对象并提供jQuery方法。

因此,只能在$()调用中调用css()或animate()等jQuery方法。

你也可以写$(document.getElementById('id')),它将返回一个jQuery对象,等价于$('#id')。

你可以通过编写$('#id')[0]从jQuery对象中获得底层DOM对象。

不完全是! !

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

Just like most people have said, the main difference is the fact that it is wrapped in a jQuery object with the jQuery call vs the raw DOM object using straight JavaScript. The jQuery object will be able to do other jQuery functions with it of course but, if you just need to do simple DOM manipulation like basic styling or basic event handling, the straight JavaScript method is always a tad bit faster than jQuery since you don't have to load in an external library of code built on JavaScript. It saves an extra step.

不,实际上结果是一样的:

$('#contents')[0] 

jQuery不知道该查询将返回多少结果。返回的是一个特殊的jQuery对象,它是与查询匹配的所有控件的集合。

jQuery如此方便的部分原因是,在这个对象上调用的大多数方法看起来是针对一个控件的,实际上是在一个循环中调用集合中的所有成员

当您使用[0]语法时,您从内部集合中获取第一个元素。此时,您将得到一个DOM对象

关于速度差异的注释。将以下代码片段附加到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要快得多。