我正在尝试创建一些对象,其名称是具有class="characteristic"
的div的id属性。我如何获得该名称的ID?
window.onload = function() {
var characteristicElements = document.getElementsByClassName("characteristic");
for ( var i = 0 ; i < characteristicElements.length ; i++ ) {
var characteristicElements[i].getAttribute("id") = { set: false, val: 0, unn: 0 };
}
};
答案 0 :(得分:3)
然后,您应该使用对象创建一个地图,并使用该ID作为属性名称:
var objects = {};
var characteristicElements = document.getElementsByClassName("characteristic");
for ( var i = 0 ; i < characteristicElements.length ; i++ ) {
objects[characteristicElements[i].id] = {'set': false, val: 0, unn: 0 };
}
Afaik你必须将set
放在引号中,因为它是对象文字中的关键字。我可能错了。另请注意,getElementsByClassName
在IE8及以前版本中不可用。
我建议您阅读MDN JavaScript Guide - Working with Objects。
答案 1 :(得分:2)
characteristicElements[i].getAttribute("id")
是一个字符串。你正在做的是var "foo" = "bar";
,没有意义。你想要做的是可行但只有eval,eval是邪恶的。如果将对象放在另一个对象中,则更容易:
window.onload = function() {
var characteristicElements = document.getElementsByClassName("characteristic");
var objects = {}; // New empty object
for ( var i = 0 ; i < characteristicElements.length ; i++ ) {
objects[characteristicElements[i].getAttribute("id")] = { set: false, val: 0, unn: 0 };
}
};
objects [“foo”]与objects.foo相同,只是另一种表示法。