我正在动态地将DOM属性附加到元素:
i = 0;
document.body['a' + i] = "foo";
document.body['b' + i] = "bar";
有没有办法可以获得我作为数组附加的所有属性?例如:
var allProperties = ['a0', 'b0'];
谢谢!
答案 0 :(得分:4)
您实际上可以创建一个新的主体对象,并与该对象进行比较以获取浏览器未添加的属性
i = 0;
document.body['a' + i] = "foo";
document.body['b' + i] = "bar";
var el = document.createElement('body'),
arr = [];
for (var key in document.body) {
if (document.body.hasOwnProperty(key) && !(key in el)) {
arr.push(key);
}
}
更加花哨
var el = document.createElement('body'),
arr = Object.keys(document.body).filter(function(prop) {
return !(prop in el);
});
答案 1 :(得分:0)
将具有固定名称的属性添加到您感兴趣的元素中,然后推送自定义属性
var pushInto = function(element, name, value)
{
element[name] = value;
if (element["customProperties"] == undefined)
{
element["customProperties"] = [];
}
element["customProperties"].push(name);
}
然后你可以这样做:
pushInto(document.body, "name", "value");
document.body["customProperties"]; // ["name"]