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]
也许添加一个检查,返回一个元素。