Standardul DOM furnizează mai multe mijloace de căutare a unui element. Acestea sunt metodele getElementById. getElementsByTagName și getElementsByName.
Cea mai convenabilă modalitate de a găsi un element în DOM este să îl obțineți prin id. Pentru a face acest lucru, utilizați apelul pentru document.getElementById (id)
De exemplu, următorul cod va schimba culoarea textului în albastru în div 'e c id = "dataKeeper":
Următoarea cale este de a obține toate elementele cu o anumită etichetă, iar printre ele să caute una potrivită. Pentru aceasta, utilizați document.getElementsByTagName (etichetă). Returnează o serie de elemente care au o astfel de etichetă.
De exemplu, puteți obține al doilea element (numerotarea în matrice merge de la zero) cu eticheta li:
Interesant, getElementsByTagName poate fi numit nu numai pentru document. dar în general pentru orice element care are o etichetă (nu un element de text).
În acest caz, vor fi găsite numai acele obiecte care se află sub acest element.
De exemplu, următorul apel primește o listă cu elementele LI. localizat în interiorul primei etichete div:
Apelul elem.getElementsByTagName ('*') returnează o listă a tuturor copiilor nodului elem în ordinea în care sunt accesați cu crawlere.
De exemplu, pe un astfel de DOM:
Afișează secvența: ol1, li1, li2.
Metoda document.getElementsByName (nume) returnează toate elementele al căror nume (atributul name) este egal cu acesta.
Funcționează numai cu acele elemente pentru care atributul are în mod explicit atributul de nume. aceasta este forma. de intrare. a. selectați. textarea și o serie de alte, mai rare.
Metoda document.getElementsByName nu va funcționa cu alte elemente div. p și altele asemenea.
De asemenea, există o metodă getElementsByClassName pentru a găsi elemente după clasă, dar nu funcționează deloc în IE, astfel încât nimeni nu o folosește în forma sa pură.
O greșeală comună este asociată cu absența literelor în numele metodei getElementById. în timp ce în alte metode această literă este: getElements ByName.
Regula este aici simplă: un element este elementul. multe - Elemente. Toate metodele * Elemente * returnează o listă de noduri.
- versiune tipărită
N-aș spune în locul tău despre măgar, el a adus o mare contribuție la dezvoltarea tehnologiilor pe Internet. Pentru că și în general, eu însumi am crescut pe IE 3 și de aceea este mai dragă pentru mine decât oricine altcineva. Ei bine, ce fel de programatori sunteți, dacă nu vă gândiți nici măcar la toate browserele și spuneți "în jos cu ea". Acesta este modul în care programatorul să ia în considerare totul. Pentru lingușirea nihren în această chestiune, în general.
Trebuie să existe un standard pentru programator - o limbă pe care toate browserele o înțeleg clar și fără ambiguitate. Și scrierea dezvoltatorilor web pentru fiecare browser codul său - este nebunie. Este ca și cum ai scrie imediat un program pentru toate sistemele de operare.
Iată câteva erori:
Primul și cel mai evident - funcția de scriere este descrisă, dar nu este numită nicăieri
Astfel, în cazul dvs., trebuie să mutați eticheta de script cel puțin sub eticheta div. Și dacă intenționați să adăugați mai multe elemente în cod, cea mai fiabilă modalitate este să plasați eticheta de script chiar la capătul corpului documentului, înainte de eticheta de închidere a corpului.
(De fapt, aceasta nu este o array completă, ci un obiect asemănător cu acesta, dar acesta este deja o caracteristică a dispozitivului intern al limbajului, dar trebuie tratat ca o matrice regulată.)
În rezumat, în cazul tău, codul ar trebui să arate astfel:
Alo
Prompt, vă rog. Este necesar ca referințele de la punctul (p) să aplice clasa "lightbox"
Eu folosesc în timp ce un astfel de cod:
var els = document.getElementsByTagName ('a');
pentru (var i = 0; i
Și ce se întâmplă dacă copiați (clonați) un nod care conține un ID?
În copia nu este db. ID-ul sau ID-ul de identitate nu vor fi unice?