jQuery将所有属性作为字符串变体

时间:2012-05-19 23:44:09

标签: javascript jquery html string

我有一些简单的html,有点像这样

<a href="" data-type="" data-id="" data-tags="" id="" class="">balrbalr</a>

我希望能够将<a>的全部内容作为字符串。

我知道你可以使用.html获取内部html,但是如果我使用

var string = $('a').html();

如果会返回,balrblabrlabr

如果我string = $('a').parent.html();

我会在父母内部获得所有<a>

我如何才能获得自己的完整html内容?

2 个答案:

答案 0 :(得分:5)

您可以使用DOM元素的原生javascript outerHTML属性:

var string = $('a')[0].outerHTML;

<强> Live DEMO

  

元素DOM接口的outerHTML属性获取描述元素(包括其后代)的序列化HTML片段。可以将其设置为使用从给定字符串解析的节点替换元素。

MDN


如果您希望获得多个元素的outerHTML,可以使用jQuery map函数,如下例所示:

var str = $('#foo a').map(function() {
    return this.outerHTML;
}).get();

Live DEMO

答案 1 :(得分:0)

将元素的id设置为“a”,然后使用此函数

    function msg() {
        var attrib="";
        var el =document.getElementById('a');
        for (var i = 0; i < el.attributes.length; i++) {
            attrib = attrib + ' ' + el.attributes.item(i).nodeName + ' = "' + el.attributes.item(i).nodeValue + '"';
        }
        alert(attrib);
    }