createElement si insertBefore 14

createElement() si insertBefore() sunt doua functii (metode) JavaScript care sunt folosite pentru a adauga elemente noi in pagina, care sunt create dinamic cu JavaScript. De obicei aceste functii sunt folosite impreuna.

1. createElement(„tag”)

Creaza obiectul elementului specificat la parametrul „tag”.
Sintaxa generala este urmatoarea:

  • document.createElement(„tag”);

– Unde „tag” este denumirea (selectorul) elementului HTML care se doreste sa fie creat.
– De exemplu: pentru <p> paramerul va fi „p”, pentru <div> parametrul va fi „div”, iar pentru o casuta <input> se specifica „input”.
Iata un exemplu in care este creat tag-ul <h3>

var element = document.createElement(„h3”);

– „element” este variabila ce stocaheaza obiectul elementului creat.

Odata creat acest element, ii putem adauga atribute si continut. Pentru aceasta i-se aplica functiile specifice, „setAttribute()” (sau „className” pt. class) si „innerHTML” (sunt prezentate in Lectia 28).
De exemplu, ii adaugam o CLASA si un text.

<script type=”text/javascript”>
var element = document.createElement(„h3”);
element.className = „o_clasa”;
element.innerHTML = ‘Textul din eticheta H3 creata dinamic’;
</script>

– Acest cod va crea un obiect „element” ce contine urmatorul cod HTML
            „<h3 class=”o_clasa”>Textul din eticheta H3 creata dinamic</h3>„.
Similar pot fi create si alte tag-uri (elemente) HTML, pentru un <div>, in loc de „h3” scrieti „div”, si tot asa pt. „span”, „br”, „li”, … etc.
Acum trebuie doar adaugat in pagina, in locul unde dorim. Pentru aceasta se poate folosi metoda „insertBefore()”, prezentata in contnuare.

2. insertBefore()

Adauga un obiect imediat inaintea altui obiect luat ca referinta, ambii in interiorul unui element parinte.
Sintaxa generala este urmatoarea:

  • parinte.insertBefore(element_nou, referinta);

– „element_nou” este obiectul cu elementul pe care dorim sa-l adaugam.
– „referinta” este obiectul inaintea caruia va fi adaugat „element_nou”.
– „parinte” este elementul parinte, in care se afla „referinta” si unde va fi adaugat si „element_nou”
Daca „referinta” are valoarea null, „element_nou” va fi adaugat la sfarsitul listei nod-urilor copil din „parent”, devenind astfel ultimul nod copil al acestuia.

Iata un exemplu din care sa intelegeti mai bine. Ca element nou ce va fi adaugat este folosit elementul creat mai sus, la primul subcapitol.
La click pe un buton, va fi adaugat tag-ul H3 creat mai sus, inaintea unui aume DIV (cu id=”rpr”)

<script type=”text/javascript”>
<!–
// Functia ce creaza noul element si-l adauga inaintea unui cadru cu id=”rpr”
function add_h3() {
    // Creaza noul element H3 si ii adauga o clasa si continut
    var element = document.createElement(‘h3’);
    element.className = ‘o_clasa’;
    element.innerHTML = ‘Textul din eticheta H3 creata dinamic’

    // Creaza obiectul cu elementul de reper (Adaugati-i si valoarea null pentru a vedea diferenta)
    var reper = document.getElementById(‘rpr’);

    // Adauga elementul nou inaintea celui de reper
    // Parinte este body
    document.body.insertBefore(element, reper);
    }
//–>
</script>

<div id=”rpr”>Elementul de reper</div>
<form action=””><input type=”button” value=”Click” onclick=”add_h3()” /></form>

– Cand apasati pe butonul „Click”, se apeleaza functia „add_h3()” care va crea automat elementul <h3>, cu textul si clasa precizate, apoi il va include /afisa inaintea tag-ului cu id=”rpr”. Dupa cum puteti testa mai jos.

Elementul de reper

Daca elementul parinte nu e BODY, ci un alt DIV, TABLE ori altceva, il preluati mai intai intr-un obiect (ex.: parinte=document.getElementById(‘id_parinte’);) apoi il includeti in formula cu „parinte.insertBefore()”.

3. Adaugare automata input (casute) in formular

Iata un exemplu practic si util de folosire a metodelor createElement() si insertBefore() pentru a adauga automat casute text intr-un formular.
Explicatiile necesare sunt in codul scriptului.

<script type=”text/javascript”>
<!–
// Functia creaza elementul input si-l adauga inaintea butonului Submit
function add_input() {
    // Seteaza noul element input, cu atributul type=text si name=nume[]
    var new_input = document.createElement(„input”);
    new_input.setAttribute(„type”, „text”);
    new_input.setAttribute(„name”, „nume[]”);
    new_input.style.display = ‘block’;             // Seteaza display:block; pt. a afisa casutele unele sub altele

    // Seteaza obiectele cu elementul de reper (Submit) si cadru parinte
    var reper = document.getElementById(‘submit’);
    var parinte = reper.parentNode;

    // Adauga elementul nou inaintea celui de reper
    parinte.insertBefore(new_input, reper);
}
//–>
</script>

<form action=””>
    <input type=”text” name=”nume[]” />
    <input type=”submit” value=”Submit” id=”submit” /><br /><br />
    <input type=”button” value=”Adauga caseta” onclick=”add_input()” />
</form>

– Cand dati click pe butonul „Adauga caseta”, se apeleaza functia „add_input()”, aceasta va crea si adauga caseta de text, dupa cum puteti testa mai jos.
Am adaugat la atributul „name” valoarea „nume[]” (cu paranteze patrate) deoarece, in general, datele sunt trimise la un script pe server si astfel pot fi prelucrate ca o matrice.

Similar Posts

  • Creare scripturi avansate – Javascript si PHP 15

    Codul PHP este executat pe server iar datele de iesire sunt transmise la navigatorul web.Codul scriptului JavaScript este executat de browser pe calculatorul utilizatorului.Combinand aceste doua limbaje de programare web, se pot obtine scripturi JavaScript dinamice, cu rezultate in functie de datele primite si procesate de server. Astfel, aceeasi pagina de site poate contine un…

  • Lucrul cu getElementsByTagName 13

    getElementsByTagName() este o functie, sau metoda JavaScript care obtine si face referire la toate elementele HTML a caror eticheta este spoecificata ca parametru intre paranteze. De exemplu:                document.getElementsByTagName(‘div’)– face referire la toate tag-urile DIV din documentul HTML.Aceasta functie stocheaza elementele pe care le-a obtinut intr-un obiect de tip…

  • Lucrul cu getElementById 12

    ID-ul este un atribut care poate fi adaugat in etichetele (sau tag-urile) HTML. Prin valoarea data acestui atribut se atribuie un nume unic etichetei respective. Acest „id” poate fi folosit in stilurile CSS pentru a defini aspectul grafic si aranjarea in pagina a tag-ului respectiv, dar poate fi folosit si in scripturi JavaScript pentru a…

  • Obiectul window – 1 11

    Ferestrele sunt cele mai importante elemente de interfata in browser, iar JavaScript ofera multe modalitati de a le manipula.In acesta lectie veti invata despre obiectul window, proprietatile si metodele acestuia, cum sa creati noi ferestre (pop-up) si sa le inchideti. 1. Proprietatile si metodele obiectului window Un browser (indiferent de nume sau producator) este prezentat…

  • Obiectul Form – 1 10

    Formularele sunt elemente HTML care dau viata unor pagini statice deoarece asigura o interfata prin care vizitatorii pot interactiona, cu ajutorul controalelor (elemente ale formularului).Obiectul Form este mijlocul prin care se poate interactiona cu acest element HTML in scripturile JavaScript. 1. Metode si proprietati ale obiectului form Dupa cum ati invatat in lectiile precedente, obiectele…

  • Obiectul image – 1 9

    Folosind JavaScript puteti crea o multime de efecte imaginilor de pe site.In aceasta lectie si in urmatoarea veti invata sa lucrati cu obiectul image, sa creati efecte cu ajutorul imaginilor, folosid JavaScript. 1. Imaginile in pagina web In JavaScript toate imaginile sunt reprezentate intr-o matrice numita images. Aceasta este o proprietate (si subobiect) a obiectului…

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *