node.attributes返回一个NamedNodeMap。
并且不会像xml中那样给出所有属性名称或值。

有没有办法得到这样的东西?

node.attributes.keys

node.attributes.values

node.attributes.items

任何一种 ?

现在我将其用于我的使用。但是js不会给出类,id,href之类的属性名称,而是给出数字。

listattr = function(node) {
    var attrs = [[],[]];
    for (var attr in node.attributes) {
        if (node.attributes[attr].nodeValue) {
            console.log(attr);
            console.log(node.attributes[attr].nodeValue);
            attrs[0].push(attr);
            attrs[1].push(node.attributes[attr].nodeValue);
        }
    }
    return attrs;
}

最佳答案

但是js不会给出类的属性名称


这是Attribute nodes的类似数组的列表,它们确实具有值和名称!您正在记录索引。

var attrs = node.attributes;
for (var i=0; i<attrs.length; i++)
    console.log(attrs[i].name, attrs[i].value);

关于javascript - HTML DOM。无论如何获取属性字典?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18071337/

10-12 21:51