返回HTML所以,据我所知,如果我有使用获得(0)或.html()来使用jQuery
<div id="thing">OMG there's awesome stuff in here</div>
,需要植物HTML别的地方,我可以选择使用方法:
$('#thing').html();
或$('#thing').get(0);
使用其中一个或另一个时是否存在更高的互联网标准?他们完全一样,对吗?
感谢您的帮助!
返回HTML所以,据我所知,如果我有使用获得(0)或.html()来使用jQuery
<div id="thing">OMG there's awesome stuff in here</div>
,需要植物HTML别的地方,我可以选择使用方法:
$('#thing').html();
或$('#thing').get(0);
使用其中一个或另一个时是否存在更高的互联网标准?他们完全一样,对吗?
感谢您的帮助!
.get(0)
将为您提供jquery对象中的第一个元素,而不是其中的HTML。然后您需要获取html。如果您使用的是jQuery,请使用jquery。我看不到没有理由不使用.html()
。
我是一个白痴,.html()让你获得innerHTML,.get(0)让你获得整个HTML元素。 – OldDrunkenSailor
@JamesMontagne你说过,“如果你使用的是jQuery,使用jQuery,我没有理由不使用'.html()'”。但'.html()_is_ jQuery并且绝对有它的用途。我们真的不知道OP在这里想要什么。 – JAAulde
@jaa是的,我做了...我的意思是使用'.html',为什么要使用'get'并获取dom元素。我并不是说不要使用'.html'。在重新阅读这个问题后,我将“一些html”表示为实际的html而不是元素,但它很可能是对术语的滥用,他可能想要移动dom元素,在这种情况下可能不是应该使用。 –
我只使用.html()和我为一家公司工作。我从来没有见过.get(0)用于这样的任何事情
他们完全一样的东西,对不对?
错误。 html
方法以字符串形式返回所选元素的内容。 get
方法返回元素本身作为对象。例如,我们有这样的元素:
<div id="example">
<span>A child element</span>
</div>
方法将返回以下:
console.log($("#example").html()); //Prints "<span>A child element</span>"
console.log($("#example").get(0)); //Prints an object
你可以尝试为自己here。
它们是完全不同的。 get
方法返回一个DOM元素,而html()
返回一个字符串。这看起来像你想要的HTML,以便使用html()
这两种方法是不同的
get()
检索由jQuery对象匹配的DOM元素。请参阅: http://api.jquery.com/get/
html()
获取匹配元素集中第一个元素的HTML内容。参见: http://api.jquery.com/html/
如果您想复制一些元素,请使用而不是使用html
。这是克隆元素的非常低效的方式。有一个更好的方法,所谓的clone
(有趣的是):
$('#thing').clone(true).removeProp('id').appendTo('#someOtherElement');
注意,我去掉id
属性,它必须是唯一的。
这两件事情要做接近同样的事情(注:将.innerHTML
你在你的问题有什么):
$('#thing').html();
$('#thing').get(0).innerHTML;
首先创建一个jQuery对象,然后调用的.html()方法(它依次从.innerHTML
属性获取HTML)。
第二个创建一个jQuery对象,然后从中获取第一个DOM元素并从中获取innerHTML属性。
一般来说,如果你已经有一个jQuery对象,然后使用.html()
。如果您已经有DOM对象,则使用.innerHTML
。
只是为了澄清,您试图从其父节点中删除该元素,然后将其附加到DOM树中的其他地方,对吗? – abelito
'.html()'序列化DOM结构,'get(0)'检索DOM参考。正如你所看到的,这两者完全不同。顺便说一句[应该避免DOM序列化](http://stackoverflow.com/questions/7392930/why-should-y-innerhtml-x-innerhtml-be-avoided)。 –