Mission réduire le nombre de lignes de code
Première étape dans la mission "réduire le nombre de lignes de code" (sans minifier le javascript) Ma function toute simple "createElem" suivante:
function createElem(type,attributes) { var elem=document.createElement(type); for (var i in attributes) { elem.setAttribute(i,attributes[i]); } return elem; }
me permet de créer des objets dans le dom de cette manière: (exemple pour un input type radio)
tdchoix.appendChild(createElem("input", {"type":"radio","id":"radioplop1","name":"radioplop","value":platId}));
Bon bah je vais raccourcir un peu un script sur lequel je bosse, dont voici un extrait:
var hiddenInfoRepasId=document.createElement("input"); hiddenInfoRepasId.setAttribute("type", "hidden"); hiddenInfoRepasId.setAttribute("value",repasId); hiddenInfoRepasId.setAttribute("name","repasID"); laForm.appendChild(hiddenInfoRepasId); var hiddenInfoStrDate=document.createElement("input"); hiddenInfoStrDate.setAttribute("type","hidden"); hiddenInfoStrDate.setAttribute("value", strDate); hiddenInfoStrDate.setAttribute("name","strDate"); laForm.appendChild(hiddenInfoStrDate); var hiddenxdcheckinput=document.createElement("input"); hiddenxdcheckinput.setAttribute("name", "xd_check"); hiddenxdcheckinput.setAttribute("value", xd_check_input); hiddenxdcheckinput.setAttribute("type","hidden"); laForm.appendChild(hiddenxdcheckinput); var hiddenListeDeVariantes=document.createElement("input"); hiddenListeDeVariantes.setAttribute("name","listeDeVariantes"); hiddenListeDeVariantes.setAttribute("type","hidden"); hiddenListeDeVariantes.setAttribute("value", menus[strDate][repasId]['variantes'].join('-')) laForm.appendChild(hiddenListeDeVariantes); var hiddenListeDeComposantes=document.createElement("input"); hiddenListeDeComposantes.setAttribute("name","listeDeComposantes"); hiddenListeDeComposantes.setAttribute("type","hidden"); hiddenListeDeComposantes.setAttribute("value", menus[strDate][repasId]['composantes'].join('-')) laForm.appendChild(hiddenListeDeComposantes); var hiddenListeDeResidents=document.createElement("input"); hiddenListeDeResidents.setAttribute("name","listeDeResidents"); hiddenListeDeResidents.setAttribute("type","hidden"); hiddenListeDeResidents.setAttribute("value", listeResidents.join('-')) laForm.appendChild(hiddenListeDeResidents); var hiddenService=document.createElement("input"); hiddenService.setAttribute("name","service"); hiddenService.setAttribute("type","hidden"); hiddenService.setAttribute("value", service) laForm.appendChild(hiddenService); var buttonvalider=document.createElement("input"); buttonvalider.setAttribute('type', 'button'); buttonvalider.setAttribute('value','Valider'); buttonvalider.className='buttonlarge'; buttonvalider.onclick=saveCommande; laForm.appendChild(buttonvalider);