我需要将属性对象转换为 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"}
答案 0 :(得分:1)
$("#delimiter")[0].attributes
返回一个属性节点数组,其中包含name
和value
属性,因此您可以执行以下操作:
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);