HTML

keylow

Linkblog

jQuery alapok : a szelektorok

2008.02.23. 10:18 keylow

Úgy gondolom, nem árt ha nem veszünk el a "kopipészt technológia" útvesztőiben, és egy kicsit a dolgok belsejébe is belepillantunk. Azért kezdtem ilyen bevezetővel ezt a post-ot, mert a javascript keretrendszerek többek között azon egyik kedvelt eszközök közé tartoznak, amelyeket sokan (szándékosan nem idesorolva a szakma kontárjait) az említett módon használják.

Mi is az a jQuery?
Tényleg csak pár mondat aki nem tudja mi ez, az úgysem itt kezdi az utánaolvasást. A jQuery egy kliens oldali, apró, de annál hatékonyabb interaktív keretrendszer javascripthez. Rendkívül gyorsan és a nyers js-hez képest lényegesen kevesebb kódolással lehet hatékony interaktív elemeket létrehozni webes alkalmazásokhoz. Első verzióját 2006-ban adta ki John Resig, MIT és GNU licensz felhasználata mellett.
Az első "bekezdést" a leglényegesebbel, gyakorlatilag az alapokkal kezdeném, mégpedig a kiválasztókkal (szelektorok).

A Szelektorok
A szelektorok az egyik leg sokoldalúbb megoldás egy vagy több DOM elem eléréséhez. Tulajdonképpen megegyezik a szabványos CSS és Xpath kiválasztók használatával azon nem éppen elhanyagolható szempont figylembe vételével, hogy böngészőfüggetlen. Például használható a szabványos > (parent child) operátor IE6 alatt is.
Általánosan használt kiválasztók:
$(#id") és $(".osztály")A kettő közti lényeges különbség, hogy az id alapú kiválasztónál csak egy DOM elemet kapunk vissza (még ha több ugyanazon id-vel ellátott HTML elemünk is van), addig az osztály kiválasztónál az összeset.
Szabványos elemek:
$(table) , $(div) , $(this)Hierarchikus kiválasztók:
$("#id1 > a#id2"), $("#id1 a"), $("#id ~ a") A teljes szelektorok listája itt olvasható.
A DOM fán megtalálható összes (a példában az összes text inputot) elemet az each() segítségével lehet elérni:
$(input[type=text]).each( function() {....} )Kiválóan helyettesíthetők vele az IE kiválasztó hiányosságok. (pl input[type=button]) Hogy mire jó ez? Egy nagyon egyszerű példával mutatnám meg. Az alábbi utasítás a dokumentum betöltődése után az összes táblázat első sorának hátterét pirosra színezi.
$(function(){
    $(table tr:eq(0)).css({ backgroundcolor:"red" })
})

Ugyanez  hagyományos javascript  megvalósítással:var table = document.getElementsByTagName("table");
for(i=0;i<table.length; i++)
{
     table[i].rows[0].style.backgroundColor = "red";
}
Ha elsőre nem is tűnt fel az olvasónak, de kevesebb gépeléssel elérhető ugyanaz az eredmény, és nem kell ciklust futtatni. További előnyök:

  • kevesebb utasításból ugyanazon eredmény
  • egymásbafűzhető utasítások (később tárgyaljuk)
  • $(elem) elérés bizonyíthatóan gyorsabb, mint a hagyományos getElementById
  • továbbá az egyik leggyorsabb populáris javascript keretrendszer (mérési eredmények)
  • gyorsan tanulható
  • cross browser és cross platform

A következő részben az elemek tulajdonságait és azok manipulálását mutatom be.

1 komment

Címkék: javascript jquery

A bejegyzés trackback címe:

https://keylow.blog.hu/api/trackback/id/tr45304418

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Gyűrött Papír 2011.10.17. 15:02:07

$(#id") innen kimaradt egy idézőjel
$("#id")
süti beállítások módosítása