如何将jQuery对象转换为字符串?


当前回答

只需使用.get(0)来获取本机元素,并获取其outerHTML属性:

var $elem = $('<a href="#">Some element</a>');
console.log("HTML is: " + $elem.get(0).outerHTML);

其他回答

这对我来说似乎很有效:

$("#id")[0].outerHTML

jQuery在这里,所以:

jQuery.fn.goodOLauterHTML= function() {
    return $('<a></a>').append( this.clone() ).html();
}

返回所有HTML内容:

$('div' /*elys with HTML text stuff that you want */ ).goodOLauterHTML(); // alerts tags and all

我假设您要的是完整的HTML字符串。如果是这样的话,像这样的东西就可以达到目的:

$('<div>').append($('#item-of-interest').clone()).html(); 

这里将对此进行更深入的解释,但本质上,您将创建一个新节点来包装感兴趣的项,执行操作,删除它,并获取HTML。

如果你只是想要一个字符串表示,那么使用new string (obj)。

更新

我在2009年写了最初的答案。截至2014年,大多数主流浏览器现在都支持outerHTML作为原生属性(例如,Firefox和Internet Explorer),因此您可以:

$('#item-of-interest').prop('outerHTML');

在jQuery 1.6中,这似乎是一个更优雅的解决方案:

$('#element-of-interest').prop('outerHTML');

找出HTML节点(对象)可用的属性和方法的最好方法是这样做:

console.log($("#my-node"));

从jQuery 1.6+你可以使用outerHTML包括HTML标签在你的字符串输出:

var node = $("#my-node").outerHTML;