是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
是这样的:
var contents = document.getElementById('contents');
和这个一样:
var contents = $('#contents');
jQuery加载?
当前回答
截至2019年,所有的答案都是旧的,你可以直接在javascript中访问id键域,只需尝试一下
<p id="mytext"></p>
<script>mytext.innerText = 'Yes that works!'</script>
在线演示! ——https://codepen.io/frank-dspeed/pen/mdywbre
其他回答
不完全是! !
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
不,实际上结果是一样的:
$('#contents')[0]
jQuery不知道该查询将返回多少结果。返回的是一个特殊的jQuery对象,它是与查询匹配的所有控件的集合。
jQuery如此方便的部分原因是,在这个对象上调用的大多数方法看起来是针对一个控件的,实际上是在一个循环中调用集合中的所有成员
当您使用[0]语法时,您从内部集合中获取第一个元素。此时,您将得到一个DOM对象
不。第一个返回一个DOM元素或null,而第二个总是返回一个jQuery对象。如果没有匹配到id为contents的元素,jQuery对象将为空。
document.getElementById('contents')返回的DOM元素允许你做一些事情,比如改变. innerhtml(或.value)等,但是你需要在jQuery对象上使用jQuery方法。
var contents = $('#contents').get(0);
是更等价的,但是如果没有与内容id匹配的元素,document.getElementById('contents')将返回null,但$('#contents').get(0)将返回undefined。
使用jQuery对象的一个好处是,如果没有返回任何元素,也不会得到任何错误,因为对象总是返回的。但是,如果试图对document.getElementById返回的空值执行操作,将会得到错误
截至2019年,所有的答案都是旧的,你可以直接在javascript中访问id键域,只需尝试一下
<p id="mytext"></p>
<script>mytext.innerText = 'Yes that works!'</script>
在线演示! ——https://codepen.io/frank-dspeed/pen/mdywbre
另一个区别是: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的选择性可以帮助您解决这个问题。