2012-04-13 2 views
0

Как я могу динамически добавлять атрибуты к объекту/классу Javascript?Динамическое преобразование пар значений имени XML в атрибуты объектов

Я разбираю XML-файл, для каждой пары значений имени в элементе xml. Я пытаюсь добавить эту пару в качестве атрибута для объекта Javascript. См. Мой пример для ясности:

function MyObject(nType) 
{ 
    this.type = nType; 
} 

MyObject.prototype.parseXMLNode(/*XML Node*/ nodeXML) 
{ 
    var attribs = nodeXML.attributes; 
    for (var i=0; i<attribs.length; i++) 
     this.(attribs[i].nodeName) = attribs[i].nodeValue; // ERROR here 
} 

// Where the xml would look like 
<myobject name="blah" width="100" height="100"/> 

ответ

1

Вы очень близко. Чтобы динамически вызывать и назначать атрибуты для объекта, вы хотите использовать нотацию в виде скобок.

Например:

person = {} 
person['first_name'] = 'John' 
person['last_name'] = 'Doe' 

// You can now access the values using: 
// person.first_name OR person['last_name'] 

Следующая должно работать для вас:

MyObject.prototype.parseXMLNode(nodeXML) { 
    var attrs = nodeXML.attributes, 
     length = attrs.length; 

    for(var i=0; i < length; i++) { 
     this[attrs[i].nodeName] = attrs[i].nodeValue; 
    } 
} 
Смежные вопросы