使用 Javascript/jQuery 从 HTML 元素中获取所有属性

2022-08-30 01:43:47

我想把Html元素中的所有属性放入一个数组中:就像我有一个jQuery对象一样,它的html看起来像这样:

<span name="test" message="test2"></span>

现在一种方法是使用这里描述的xml解析器,但是我需要知道如何获取对象的html代码。

另一种方法是用jquery制作它,但是如何呢?属性的数量和名称是通用的。

谢谢

顺便说一句:我无法使用document.getelementbyid或类似的东西访问该元素。


答案 1

如果您只想要 DOM 属性,则在元素本身上使用节点列表可能更简单:attributes

var el = document.getElementById("someId");
for (var i = 0, atts = el.attributes, n = atts.length, arr = []; i < n; i++){
    arr.push(atts[i].nodeName);
}

请注意,这仅使用属性名称填充数组。如果需要属性值,可以使用以下属性:nodeValue

var nodes=[], values=[];
for (var att, i = 0, atts = el.attributes, n = atts.length; i < n; i++){
    att = atts[i];
    nodes.push(att.nodeName);
    values.push(att.nodeValue);
}

答案 2

你可以把这个简单的插件用作$('#some_id').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);