是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
当前回答
不完全是! !
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
其他回答
以防别人撞到…这是另一个不同之处:
如果id包含HTML标准不支持的字符(参见这里的SO问题),那么即使getElementById可以找到它,jQuery也可能找不到它。
这发生在我的id包含“/”字符(例如:id=“a/b/c”),使用Chrome:
var contents = document.getElementById('a/b/c');
能找到我的元素,但是
var contents = $('#a/b/c');
没有。
顺便说一句,简单的修复是移动id到名称字段。JQuery使用以下方法轻松找到元素:
var contents = $('.myclass[name='a/b/c']);
另一个区别是:getElementById返回第一个匹配项,而$('#…')返回一个匹配项的集合——是的,相同的ID可以在HTML文档中重复出现。
此外,getElementId从文档中调用,而$('#…')可以从选择器中调用。因此,在下面的代码中,document.getElementById('content')将返回整个主体,但$('form #content')[0]将返回表单内部。
<body id="content">
<h1>Header!</h1>
<form>
<div id="content"> My Form </div>
</form>
</body>
使用重复的id可能看起来很奇怪,但如果你使用像Wordpress这样的东西,模板或插件可能会使用与你在内容中使用的相同的id。jQuery的选择性可以帮助您解决这个问题。
var contents = document.getElementById('contents');
Var contents = $('#contents');
代码片段是不一样的。第一个返回一个Element对象(source)。 第二个是jQuery等效函数,返回一个包含0个或1个DOM元素的集合的jQuery对象。(jQuery文档)。jQuery内部使用document.getElementById()来提高效率。
在这两种情况下,如果找到多个元素,则只返回第一个元素。
当检查github项目的jQuery时,我发现下面的行片段似乎正在使用文档。getElementById代码(https://github.com/jquery/jquery/blob/master/src/core/init.js第68行起)
// HANDLE: $(#id)
} else {
elem = document.getElementById( match[2] );
关于速度差异的注释。将以下代码片段附加到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要快得多。
jQuery是基于JavaScript构建的。这意味着它只是javascript。
document.getElementById ()
getelementbyid()方法返回具有指定值的ID属性的元素,如果不存在具有指定ID的元素则返回null。一个ID在一个页面中应该是唯一的。
Jquery(美元)
以id选择器作为参数调用jQuery()或$()将返回一个包含0个或1个DOM元素的集合的jQuery对象。每个id值在文档中只能使用一次。如果多个元素被分配了相同的ID,使用该ID的查询将只选择DOM中第一个匹配的元素。