JQuery:如何在一个语句中获取所有选择器的html属性,作为字符串?

时间:2010-02-22 19:51:31

标签: jquery html string header

我有一个看起来像这样的div:

<div id="exampleDiv" class="class1 class2" title="example title"></div>

我使用此语句选择了JQuery:

var $div = $('#exampleDiv');

我想得到的是一个标签本身的字符串作为html,所以我实际得到:

"<div id='exampleDiv' class='class1'....", etc.

在给定选择器的情况下,是否有人知道我可以使用的JQuery函数?我在想$div.htmlHeader()之类的东西。

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:6)

将元素克隆到新div中,删除克隆的子节点,然后打印父div的html:

var html = $("<div/>").append($("#exampleDiv").clone().empty()).html();

如果要打印的元素有很多后代,并且您不想承担克隆整个层次结构的成本,并且如果您不介意简单地保留jQuery DOM接口的安全性,那么您可以做相反:

var html = $("<div/>").append($("#exampleDiv")[0].cloneNode(false)).html();

答案 1 :(得分:0)

你走了:

$.fn.tagonly = function() {
    return $('<div/>').append($(this).clone().empty())
        .html().replace(/>(.|[\r\n])*$/ig, '>');
};

修改修复了额外的)和换行问题。谢谢帕特里克。