Насколько я знаю, фактический порядок свойств элемента HTML открыт для интерпретации браузером, поэтому нет надежного способа определить, имеете ли вы дело с <input type="radio" name="Q_209" value="A" checked>
или <input checked="true" name="Q_209" value="A" type="radio">
Но вы можете получить все свойства и значения элемента с помощью оператора for ... in
:
var foo = document.getElementById('form_id')['Q_209'];
var foo_properties = [];
for (var prop in foo) {
// do something with prop and foo[prop];
}
Это означает, что вы потенциально можете сравнить свойства, найденные в элементе, с подмножеством свойств, которые вам действительно нужны (специфические для данного конкретного тега или большей совокупности свойств "html"), чтобы получить "состояние html" элемента и сможет восстановить его или строковое представление.
var input_foo = document.getElementById('form_id')['Q_209'];
var awesome_properties = {'type':'','name':'','value':'','checked':''};
var tag = '<input ';
var properties = '';
for (var prop in foo) {
if (prop in awesome_properties) {
properties += ' '+prop+'="'+foo[prop]+'"';
}
}
tag += properties;
tag += '>';
window.alert(tag);