function inserer() { var m = document.getElementsByTagName("label").length; n = Math.floor(m / 4); var contenu = document.getElementById("insertion").innerHTML; insertion.innerHTML = contenu + '<div id="ligne ' //et la suite... }c'est une utilisation malsaine de innerHTML que tu fais là...ce que l'on peut qualifier d'effet de bord, c'est pour cela qu'il n'est pas conseillé de l'utiliser sauf peut être lors de l'initialisation.
//----------------- function inserer() { var m = document.getElementsByTagName("label").length; n = Math.floor(m / 4); //-- Get Element parent var oDiv = document.getElementById("insertion"); //-- Creation de la DIV a ajouter var oNew = document.createElement("div"); //-- Affectation de l'ID oNew.id = "ligne " + n; //-- Ajout de l'element oDiv.appendChild( oNew) //-- Ajout du contenu oNew.innerHTML = '<span id="calendrier' //et la suite... }
var oParent = document.getElementById("ligne " + numb); var oSelect = oParent.getElementsByTagName("SELECT"); alert(oSelect[0].innerHTML);
plutôt que le calendrier, au moins la fonction d'insertion de ta ligne et la façon dont elle est appelée, pas plus dans un premier temps.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <style> body{ background-image : url("bg-logo.jpg"); background-attachment: fixed; } </style> <script language="javascript"> moisX=["","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"]; JourM=["Di","Lu","Ma","Me","Je","Ve","Sa"]; var fermable_microcal=true; var select_old= null; var startWeek=0;//debut de la semaine 0=dim,1=lun,... var jourPause={0:true,6:true}; //jour de pause de la semaine var jourFeriee={"1-1":"jour an","1-5":"fête du travail","8-5":"armistice","14-7":"fête nationale","15-8":"ascencion","1-11":"armistice","11-11":"toussain","25-12":"noel"}; //structure la date function strucDate(dateX) {return {"pos":dateX.getDay(),"jour":dateX.getDate(),"mois":dateX.getMonth()+1,"annee":dateX.getFullYear()};} var dateS= strucDate(new Date());//date Selectionné var dnow= strucDate(new Date());//date actuelle //retourne le ième jour du 1er du mois function premJourMois(mois,annee) {return (new Date(annee,mois-1,1).getDay());} //retourne le jour max du mois function JmaxMois(mois,annee) {return (new Date(annee,mois,0).getDate());} /* Test une date si elle est correct...spécial killer*/ function testTypeDate(dateEntree) { tst=false; try {rc=dateEntree.split("/");nd=new Date(rc[2],(rc[1]-1),rc[0]); tst=(rc[2]>1800&&rc[2]<2200&&rc[2]==nd.getFullYear()&&rc[1]==(nd.getMonth()+1)&&rc[0]==nd.getDate()); } catch(e) {} return tst; } //selection de la zone avec la souris function choix(koi,code) { if (code) { select_old= koi.style.background; koi.style.background ='#c0c0FF'; } else { koi.style.background =select_old; } } function testTravail(oldX,xx,jj,mm,aa) { styleX="font-family:Tahoma;font-size:10px;text-align:center;"; styleX+=(oldX)?"":"color:#e0e0e0;"; styleX+="cursor:hand;border-right:1px #e0e0e0 solid;border-bottom:1px #e0e0e0 solid;"; if (jourPause[xx]||jourFeriee[jj+"-"+mm]!=null) styleX+="background:#f0f0f0;"; if (jj==dnow.jour&&mm==dnow.mois&&aa==dnow.annee) styleX+="border:2px red solid;"; return styleX; } //test si année bissextile function bissextile(annee) { return (annee%4==0 && annee %100!=0 || annee%400==0); } //Retourne le nombre de jour depuis le 1er janvier (num de semaine) function nbJAnnee(dateX){ var nb_mois=[,0,31,59,90,120,151,181,212,243,273,304,334]; j=dateX.jour ; m=dateX.mois ; a=dateX.annee; nb=nb_mois[m]+j-1 ; if (bissextile(a) && m>2) nb++; return nb; } //affiche le calendrier function view_microcal(actif,ki,source,mxS,axS) { if (actif) { //decalage du mois su on clique sur -/+ if (mxS!=-1) { clearTimeout(cc); ki.focus(); fermable_microcal=true; dateS.mois=mxS; dateS.annee=axS; if (dateS.mois<1) {dateS.annee--;dateS.mois+=12;} if (dateS.mois>12) {dateS.annee++;dateS.mois-=12;} } //init Dstart=(premJourMois(dateS.mois,dateS.annee)+7-startWeek)%7; jmaxi=JmaxMois(dateS.mois,dateS.annee); jmaxiAvant=JmaxMois((dateS.mois-1),dateS.annee); //si on veux ajouter le numero de la semaine ... //idxWeek=parseInt(nbJAnnee(strucDate(new Date(dateS.mois+'-01-'+dateS.annee)))/7,10)+1; ymaxi=parseInt((jmaxi+Dstart+1)/7,10); //generation du tableau //--entête htm="\"; htm+=\"-, \"; htm+=\" "+moisX[dateS.mois]+" "+dateS.annee+", \"; htm+=\"+, \"; //--corps htm+=\"---- \"; //affichage des jours DLMMJVS for (x=0;x<7;x++) htm+=\""+JourM[(x+startWeek)%7]+", \"; htm+=\"\" //------------------------ for (y=0;y<=ymaxi;y++) { htm+=\"---- \"; for (x=0;x<7;x++) { idxP=y*7+x-Dstart+1; //numero du jour aa=dateS.annee; xx=(x+startWeek)%7; //jour du mois précedent if (idxP<=0) { jj=idxP+jmaxiAvant;mm=dateS.mois-1; if (mm==0) {mm=12;aa--;} htm+=\""+jj+", \"; } else if (idxP>jmaxi) //jour du mois suivant { jj=idxP-jmaxi;mm=dateS.mois+1; if (mm==13) {mm=1;aa++;} htm+=\""+jj+", \";} else //jour du mois en cours { jj=idxP;mm=dateS.mois; htm+=\""+jj+", \";} } htm+=\"\" }//------------------------- htm+=" " //affiche le tableau source.innerHTML=htm; source.style.visibility=""; } else { //ferme le calendrier if (fermable_microcal) cc=setTimeout(source.id+".style.visibility='hidden'",500); } } </script> <SCRIPT LANGUAGE="JavaScript"> <!-- var i=0,j=0; function compZero(nombre) { return nombre < 10 ? '0' + nombre : nombre; } function date() { var infos = new Date(); var str; str='['+compZero(infos.getDay())+' - '+compZero(infos.getMonth())+' - '+compZero(infos.getFullYear())+']'; return str; } var marge = 445; function inserer(){ var m = document.getElementsByTagName("label").length; n = Math.floor(m/4); var contenu = document.getElementById("insertion").innerHTML; insertion.innerHTML = contenu+' <label>ALLEE </label> <select id="listeD '+n+'" onchange="afficher('+n+');" > <option value="agadir">Agadir</option><option value="hoceima">Al Hoceima</option> <option value="casa" selected>Casablanca</option><option value="dakhla">Dakhla</option><option value="jdida">El Jadida</option> <option value="rachidiya">Errachidia</option> </select> <select id="listeA '+n+'" onchange="afficher('+n+');"><option value="agadir">Agadir</option><option value="hoceima">Al Hoceima</option><option value="casa" selected>Casablanca</option><option value="dakhla">Dakhla</option> <option value="jdida">El Jadida</option><option value="rachidiya">Errachidia</option></select> Supprimer <label>RETOUR</label> <label>Casablanca</label> <label>Casablanca</label><hr /> '; } function afficher(numb){ var D = document.getElementById("ligne "+numb); var i = D.childNodes[5].selectedIndex; var j = D.childNodes[7].selectedIndex; if(isNaN(parseInt(distance[i][j]))) D.childNodes[9].setAttribute("value","------"); else D.childNodes[9].setAttribute("value",2*parseInt(distance[i][j])+" Km"); D.childNodes[20].innerHTML = D.childNodes[5].options[i].innerHTML; D.childNodes[18].innerHTML = D.childNodes[7].options[j].innerHTML; } var distance = new Array( new Array("----","1091 Km","511 Km","1173 Km","417 Km","661 Km"), new Array("1091 Km","----","539 Km","2264 Km","632 Km","616 Km"), new Array("511 Km","539 Km","----","1173 Km","417 Km","545 Km"), new Array("1173 Km","2264 Km","1684 Km","----","1590 Km","1954 Km"), new Array("417 Km","632 Km","417 Km","1590 Km","----","506 Km"), new Array("661 Km","616 Km","545 Km","1954 Km","506 Km","----")); //--> </SCRIPT> </HEAD> , ---- Espace agent comptable , ---- Nom : XXXXX, ---- ---- Prénom : XXXXX, ---- ---- Tél : XXXXX, ---- ---- Voiture : XXXXX, ---- ---- Type : XXXXX, ---- ---- CV : XXXXX, ---- ---- Date, Type, Depart, Arrivée, Distance, Indemnité, ---------, ---- <form id="formulaire" name="formulaire" action="" method="get"> </form> </HTML>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionvar oParent = document.getElementById("ligne " + numb); var oChild = oParent.childNodes; // liste de tous les enfants var szTmp = ""; for( var i 0, nb oChild.length; i < nb; i++){ szTmp += i + '->' +oChild[i].nodeName +'->' +oChild[i].nodeType +'\n'; } alert( szTmp);et observes, tu peux bien sur afficher ce que bon te semble