是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
当前回答
另一个区别是: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的选择性可以帮助您解决这个问题。
其他回答
以防别人撞到…这是另一个不同之处:
如果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']);
截至2019年,所有的答案都是旧的,你可以直接在javascript中访问id键域,只需尝试一下
<p id="mytext"></p>
<script>mytext.innerText = 'Yes that works!'</script>
在线演示! ——https://codepen.io/frank-dspeed/pen/mdywbre
以上所有答案都是正确的。如果你想看到它的运行,不要忘记你在浏览器中有控制台,在那里你可以清楚地看到实际的结果:
我有一个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
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.
jQuery是基于JavaScript构建的。这意味着它只是javascript。
document.getElementById ()
getelementbyid()方法返回具有指定值的ID属性的元素,如果不存在具有指定ID的元素则返回null。一个ID在一个页面中应该是唯一的。
Jquery(美元)
以id选择器作为参数调用jQuery()或$()将返回一个包含0个或1个DOM元素的集合的jQuery对象。每个id值在文档中只能使用一次。如果多个元素被分配了相同的ID,使用该ID的查询将只选择DOM中第一个匹配的元素。