jQuery将DOM元素作为字符串

说我有

$(":input[type=text]:first") 

如何得到

  

假设我在SO上运行它?

更新我不想调用.parent()因为我在父元素中有很多其他东西。

一个老技巧:

 var selector = ":input[type=text]:first"; var str = $(selector).clone().wrap('
').parent().html();

更新您不必担心调用.parent()因为您正在使用原始选择器的孤立克隆。

怎么样

 $(selector).prop("outerHTML"); 

通过附加到创建的元素来使用jQuery.html() 。

 $('
').append($(":input[type=text]:first").clone()).html()

这是一个提供示例的小提琴: http : //jsfiddle.net/Zwbmx/1/

关于@Blazemonger已经回答的内容,如果你要将这个html内容发送到服务器,那么删除所有不添加任何值的不必要的标签,空格和换行符是值得的。

 var quote = $(".invoice") //get hidden print-version DOM element .clone() .wrap('
') .parent() .html() .replace(/ /g, '') //get rid of indentation spaces .replace(/(\r\n|\n|\r)/gm, "") //get rid of line breaks .replace(//g, ""); //get rid of comment tags

我的html有50kb,在摆脱这些东西后,它减少到4kb!

怎么样:

 var str = $(selector)[0] 

也许添加一个检查,返回一个元素。