Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Inserimento dinamico di un DIV

    ciao ragazzi non riesco a fare una cosa che forse per voi sembrerà stupidissima.... Vorrei aggiungere dinamicamente un DIV al di sotto di uno selezionato....

    Ho una pagina del tipo:
    codice:
    	<div id="princDiv">
        	<div id="div1">div1</div>
        	<div id="div2">div2</div>
        	<div id="div3">div3</div>
        	<div id="div4">div4</div>
        	<div id="div5">div5</div>
        	<div id="div6">div6</div>
        	<div id="div7">div7</div>
        </div>
    
    	 inserisci nel div 4 
    al click vorrei che sotto al div4 si creasse col DOM un nuovo div per cui ho creato questo codice:

    codice:
    function InsertDiv(divName, contenuto)
    {
    	var parent;
    	var divArray = document.getElementsByTagName("div");
    	var divArrayL = divArray.length;
    	
    	var textNode = document.createTextNode(contenuto);
    	var createDiv = document.createElement("div");
    		createDiv.appendChild(textNode);
    		createDiv.setAttribute('id', 'confirmDiv');
    	
    		for(var i=0; i<divArrayL; i++)
    		{
    			if(divArray[i].getAttribute("id") == divName){
    				divArray[i].appendChild(createDiv);
    				
    				document.getElementById('aConfirm').setAttribute('onclick','');
    				break;
    			}
    		}
    }
    Mi crea il div ma invece di inserirmelo sotto me lo inserisce ALL'INTERNO del div che mi punta...Come posso risolvere questo problema?

    Grazie mille a tutti

  2. #2
    Ho modificato il codice in questo modo:
    codice:
    			if(divArray[i].getAttribute("id") == divName){
    				
    				var sp2 = document.getElementById(divName);
    				var parentDiv = sp2.parentNode;
    		
     					parentDiv.insertBefore(createDiv, sp2);
    				
    				document.getElementById('aConfirm').setAttribute('onclick','');
    				break;
    			}
    Ora il div me lo crea esternamente ma SOPRA a quello che avevo selezionato....Come risolvo secondo voi? devo andare a puntare per forza quello successivo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    codice:
    var parentDiv = sp2.parentNode;
    parentDiv.insertBefore(createDiv, sp2.nextSibling);

  4. #4
    Grazie mille va alla grande!!!!!

    Era il NextSibling che mancava

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.