如何将html元素属性转换为JSON

时间:2017-07-30 16:33:06

标签: javascript jquery html attributes

我需要将属性对象转换为 JSON 类型,但属性对象是一种魔力。

代码:

var attrs = $("#delimiter")[0].attributes;
console.log(attrs);
console.log(attrs["id"]);
console.log(JSON.stringify(attrs));

结果:

{0: id, 1: title, length: 2}
id=​"delimiter"
{"0":{},"1":{}}

我需要这样的结果:

{"id" : "foo", "title" : "some title"}

2 个答案:

答案 0 :(得分:1)

$("#delimiter")[0].attributes返回一个属性节点数组,其中包含namevalue属性,因此您可以执行以下操作:

var attrs = {};
$("#delimiter")[0].attributes.forEach(function(element) {
    attrs[element.name] = element.value;
});

请参阅Element.attributes here的文档。

答案 1 :(得分:1)

您可以将此简单插件用作$('#delimiter').getAttributes();

(function($) {
    $.fn.getAttributes = function() {
        var attributes = {}; 

        if( this.length ) {
            $.each( this[0].attributes, function( index, attr ) {
                attributes[ attr.name ] = attr.value;
            } ); 
        }

        return attributes;
    };
})(jQuery);