getElementById和jquery $('#smth')之间的区别

时间:2011-05-23 22:30:23

标签: javascript jquery getelementbyid

经典Javascript代码之间有什么区别:

document.getElementById('theID')

和jQuery版本:

$('#theID')

6 个答案:

答案 0 :(得分:55)

document.getElementById返回一个DOM对象。这是浏览器本地思考页面中元素的方式。它有各种方法和属性。这些使用起来有点笨拙。

jQuery对象(由$方法创建)是DOM元素或一组DOM元素的包装器。正常的属性和方法不可用;您可以选择不同的方法,使DOM操作过程更加直观。

在选择中使用多个元素时,差异更明显(例如,您可以使用类选择器$('.someClass'),但jQuery选择的方法与本机DOM元素上的方法不同他们指出同样的事情,但他们是不同的思考方式和处理它。


最后,您可以使用get方法将jQuery选择转换为其本机DOM元素(编辑:或替代的类似数组的语法)。所以

document.getElementById('theID')

完全相同
$('#theID').get(0) // or $('#theId')[0]

但请注意,您应该使用第一个,因为它具有更好的性能。如果您需要它提供的额外功能,请仅使用jQuery。

答案 1 :(得分:0)

在第二个项目中,你可能没有在顶部包含jQuery文件。

答案 2 :(得分:0)

确保包含

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<head>

如果您未加载jQuery,则无法使用$,因为jQuery是外部库,而不是JavaScript的一部分。

答案 3 :(得分:0)

不完全: 如果页面上不存在具有该id的元素 $(“#id”)将无效,脚本将停止 document.getElementById(“id”)将返回null

答案 4 :(得分:0)

两者之间存在以下差异。

  1. jQuery #id选择器使用JavaScript document.getElementById() 功能
  2. JavaScript的document.getElementById()函数在以下情况下引发错误 找不到具有给定id的元素,而jQuery #id 选择器不会抛出错误。要检查#id选择器是否返回了元素,请使用length属性。
  3. JavaScript的document.getElementById()和jQuery(#id)选择器是 不一样。 document.getElementById()返回原始DOM对象 其中,作为jQuery('#id')选择器返回包装的jQuery对象 DOM对象并提供jQuery方法。这就是你的原因 能够在对象上调用jQuery方法,例如css()click() 由jQuery返回。从jQuery获取基础DOM对象 对象写$('#id')[0]
  4. document.getElementById()比jQuery('#id')选择器快。采用 除非您通过jQuery {'#id')选择器document.getElementById() 需要jQuery对象提供的额外功能。

答案 5 :(得分:-4)

没有区别,您只需要在项目中安装和引用jQuery库。