Ciao a tutti ho un problema a cui non riesco a venirne a capo...
Vorrei che al click su un determinato link,mi si creasse con il dom una nuova riga nella tabella e mi creasse al suo interno 2 div...
Una cosa relativamente semplice ma purtroppo con explorer non mi funziona!!
all'ultima istruzione quando vado ad eseguire l'innerHTML mi dice 'errore di run time' mentre con mozilla funziona tutto alla perfezione....
dove sbaglio secondo voi? Vi posto il codice della funzione..
codice:var FavoriteExtra = { // in questa funzione creo con DOM la struttura per metterci i contenuti con la paginazione // ricevo in ingresso (tipo di contenuto extra cliccato(LK-IMG-ED), ID del contenuto) openExtraLink: function(extraType, IDBox) { var mynewRigaName = 'rigaExtraType-'+IDBox; // nome della riga con i contenuti di paginazione var mynewRigaRef = document.getElementById(mynewRigaName); if (mynewRigaRef == null) // se il box con i contenuti di paginazione non esiste lo creo { var newExtraTR = document.createElement("tr"); // creo la nuova riga var newExtraTD = document.createElement("td"); // creo la cella newExtraTR.id = 'rigaExtraType-'+IDBox; // assegno l' id alla nuova riga var closeDiv = document.createElement("div"); // creo il div di chiusura var closeDivA = document.createElement("a"); // creo il link per inserirlo nel div di chiusura closeDivA.id = 'closeThis-'+IDBox+'-'+extraType; closeDivA.href = '#no-up'; // assegno il valore di href closeDivA.onclick = function(){ FavoriteExtra.closeExtraLink(extraType, IDBox) } // assegno la funzione di chiusura del tr al link var closeDivMessage = document.createTextNode('Chiudi'); // creo il nodo testuale da inserire al link closeDivA.appendChild(closeDivMessage); // appendo il messaggio al link closeDiv.appendChild(closeDivA); // appendo il link al div newExtraTD.appendChild(closeDiv); // appendo il div alla td var newExtraDiv = document.createElement("div"); // creo il DIV dove inserisco i contenuti newExtraDiv.id='extraDiv-'+IDBox; // assegno il nuovo id al DIV newExtraTD.appendChild(newExtraDiv); // appendo il div alla TD newExtraTR.appendChild(newExtraTD); // appendo la TD alla riga TR var presentName = 'extra-'+IDBox; // ID della riga già presente a cui dovrò appendere quella nuova var presentChild = document.getElementById(presentName); presentChild.appendChild(newExtraTR); // adesso devo eliminare il link che ha cliccato per espandere e sostituirlo con il solo testo var clickLink = document.getElementById(extraType+'-'+IDBox); // punto al link (lo span che lo contiene) clickLink.replaceChild(document.createTextNode(extraType), clickLink.firstChild); // lo rimuovo dalla TD che lo contiene var pagID = 'extraDiv-'+IDBox; document.getElementById(pagID).innerHTML='inserisco il testo nel div'; } else { var closeButton1 = document.getElementById('closeThis-'+IDBox+'-LK'); var closeButton2 = document.getElementById('closeThis-'+IDBox+'-IMG'); var closeButton3 = document.getElementById('closeThis-'+IDBox+'-ED'); if(closeButton1) { var closeButtonID = closeButton1.id; // ho un ID formato da 'closeThis-'+IDBox+'-LK' } else if(closeButton2) { var closeButtonID = closeButton2.id; // ho un ID formato da 'closeThis-'+IDBox+'-IMG' } else if(closeButton3) { var closeButtonID = closeButton3.id; // ho un ID formato da 'closeThis-'+IDBox+'-ED' } var splittedID = closeButtonID.split("-"); // lo splitto in modo da avere il nome della funzione che l'ha richiamato in POS 2 var functName = splittedID[2]; FavoriteExtra.closeExtraLink(functName, IDBox); FavoriteExtra.openExtraLink(extraType, IDBox); } }, closeExtraLink: function(extraType, IDBox) { // elimino la riga var closeRow = document.getElementById('rigaExtraType-'+IDBox); if(closeRow){ closeRow.parentNode.removeChild(closeRow); } // ricreo il link var rigenerateLink = document.createElement("a"); rigenerateLink.appendChild(document.createTextNode(extraType)); rigenerateLink.href = "#no-up"; rigenerateLink.onclick = function(){ FavoriteExtra.openExtraLink(extraType, IDBox) } // gli associo di nuovo la funzione per aprire il box var clickLink = document.getElementById(extraType+'-'+IDBox); // punto al link (lo span che lo contiene) clickLink.replaceChild(rigenerateLink, clickLink.firstChild); // lo rimuovo dalla TD che lo contiene } };

Rispondi quotando