Elemek keresése dom

DOM szabvány számos eszközt biztosít keresési elemet. Ez a módszer getElementById. getElementsByTagName és getElementsByName.

A legkényelmesebb módja, hogy megtalálják egy elemet a DOM - az, hogy őt a id. Erre a célra a hívás document.getElementById (id)

Például, a következő kód megváltozik a szöveg színét kékre a div „e c id =»DataKeeper«:

A következő módon -, hogy minden elem egy adott tag, és keresik a megfelelő közöttük. Erre a célra document.getElementsByTagName (tag). Ez adja vissza egy tömbben elemek, amelyek egy ilyen tag.

Például, lehetséges, hogy megkapja a második tag (számozás a tömbben a nullától) a tag li:

Ami érdekes, hogy getElementsByTagName nevezhetjük nemcsak a dokumentumot. de általában minden elem, amely egy címkét (nem szöveges).

Ugyanakkor lesznek már csak azokat az objektumokat, amelyek ezen tétel alatt.

Például a következő hívást kap egy listát a LI elemek. belül az első tag div:

Hívjon elem.getElementsByTagName ( „*”) visszatér egy listát az összes elem csomópont gyermekek érdekében, hogy elkerülje őket.

Például, egy ilyen DOM:

Kijelzők sorrendben: OL1 LI1, LI2.

document.getElementsByName módszer (név) visszaadja az összes elemet a neve (név attribútum) van megadva.

Ez csak akkor működik, azokat az elemeket, amelyek az előírások kifejezetten előírta az attribútum nevét. ezt az űrlapot. bemenet. a. válasszon. textarea és számos más, ritkább.

document.getElementsByName módszer nem fog működni más elemeket, mint div. p, stb

Van is egy getElementsByClassName módszert találni elemei az osztályban, de ez nem működik IE, így a tiszta formában senki nem használja.

A közös elírás hiánya s betű a neve getElementById módszer. míg más módszerek a levélben van: getElements közkeletű nevén.

A szabály itt is egyszerű: az egyik eleme - Element. Sok - Elements. Minden módszer * * Elements listáját adja vissza csomópontokat.

  • nyomtatható változat

Ha én a helyedben nem mondanám így körülbelül egy szamár, csinált egy nagy hozzájárulás a fejlesztés az internet-technológiák. És minden, nőttem fel IE 3 és így én is drágább, mint a többiek. Nos, amit a programozók, akkor is, ha nem veszik figyelembe az összes böngészőt, és azt mondják: „le vele.” Ez az, hogy figyelembe kell venni a programozó, hogy vegye figyelembe az összes. Mert Nehru hízelgés ebben az esetben egyáltalán.

Ott kell lennie a szabvány a programozó - egy nyelv, amely minden böngésző érti világosan és egyértelműen. A webfejlesztők, hogy írjon minden böngésző a forrásra - őrültség. Ez olyan, mint az írás egy programot az összes operációs rendszer egyszerre.

Itt több hiba:

Az első és legkézenfekvőbb - funkció writerel le, de soha nem hívott

  • Továbbá - a script a ténylegesen elvégzett oldalbetöltések során. De, ahogy le van írva a BODY tag elején, akkor lefut, mielőtt bármilyen rendering elemek benne. Azaz, ha a script szeretne hivatkozni olyan elem, amely abban az időben a program futása elemnek kell készíteni.

    Így az Ön esetében, meg kell mozgatni a script tag legalább a címke után div. És ha azt tervezi, hogy adjunk több elemet kell a kódot, annál megbízhatóbb lesz az egész hely egy script tag a végén a dokumentum törzsében, a zárás előtt testet.

    (Valójában ez nem egy teljes tömb Array, és mint neki egy tárgyat, de ez főleg a belső nyelvét, hogy a készülék kezeli őt továbbra is szükség van egy közös tömb.)

  • És ez nem hiba, hanem egy finom pont - Ha azt akarjuk, hogy ragaszkodni jó programozási stílus, nem szükséges, hogy használjon idézőjeleket vonósokra és korlátok és aposztrófok ugyanabban kódrészletet. Válassza ki az egyik határoló és használja az egész kódot.
  • Összefoglalva - az Ön esetében, a kód kell nézni legalább a következő:

    Helló
    Kérem, mondja meg. Meg kell hivatkozni bekezdés (p) kell alkalmazni az osztály „gyűjtőbe”
    Használom, amíg a következő kódot:
    var ELS = document.getElementsByTagName ( 'a');
    for (var i = 0; i ELS [i] .setAttribute ( 'osztály', 'gyűjtőbe');

    És mi lesz, ha másolni (klónozott) csomópontot, amely tartalmazza az azonosító?
    A példány nem DB ID, vagy ez egy egyedi azonosító nem?

    Kapcsolódó cikkek