Я пришел на эту страницу из-за того же вопроса, но я не использую JQuery, и ни один из методов-клонов не работал для моих собственных объектов.
Я знаю, что мой ответ не слишком сильно связан с этим вопросом, потому что это другой подход. Вместо использования функций-клонов я использую функцию создания. Это сработало для меня в следующих (к сожалению ограничивающих) целях:
- Я использую в основном Javascript, сгенерированный JSP
- В начале я знаю, какой объект должен быть сгенерирован (в моем случае это информация из базы данных, которая выбирается один раз и должна чаще развертываться в JS.
Сначала я определил свои объекты следующим образом:
var obj= new Object();
obj.Type='Row';
obj.ID=1;
obj.Value='Blah blah';
Теперь я переместил все как:
function getObjSelektor(id_nummer,selected){
var obj = document.createElement("select");
obj.setAttribute("id","Selektor_"+id_nummer);
obj.setAttribute("name","Selektor");
obj.setAttribute("size","1");
var obj_opt_1 = document.createElement("option");
obj_opt_1.setAttribute("value","1");
if(1==selected)
posopval_opt_1.setAttribute("selected","selected");
obj_opt_1.innerHTML="Blah blah";
obj.appendChild(obj_opt_1);
var obj_opt_2 = document.createElement("option");
obj_opt_2.setAttribute("value","2");
if(2==selected)
obj_opt_2.setAttribute("selected","selected");
obj_opt_2.innerHTML="2nd Row";
obj.appendChild(obj_opt_2);
...
return obj;
}
И вызовите функцию в обычном коде:
myDiv.getObjSelektor(getObjSelektor(anotherObject.ID));
Как уже говорилось, это другой подход, который решил мою проблему для моих целей.