querySelector() si querySelectorAll() sunt doua functii JavaScript foarte utile cand se lucreaza cu elemente HTML in JavaScript.
Cu aceste functii se pot prelua in JavaScript elemente HTML selectate dupa selectori CSS ("id", "class").
Sunt suportate de principalele navigatoare web: Mozilla Firefox 3.5+, Google Chrome, Internet Explorer 8+, Opera 10+, Safari 3.2+.

querySelector()

querySelector() returneaza primul element din document care se potriveste cu grupul de selectori specificati, sau null daca nu e gasit.
Sintaxa:
var elm = document.querySelector('selectori');
- "selectori" e un sir cu unul sau mai multi selectori CSS, separati prin virgula.
- elm e variabila ce va contine obiectul cu elementul HTML.

Exemplu, codul de mai jos afiseaza o fereastra Alert cu continutul din tag-ul HTML cu id="someid", si cel din primul LI cu class="aclass".
<div id="someid">Sa ai viata buna.</div>
<ul>
 <li class="aclass">MarPlo.net</li>
 <li>MarPlo.net</li>
 <li class="aclass">php.net</li>
</ul>

<script type="text/javascript">
var someid_cnt = document.querySelector('#someid').innerHTML;
var aclass1_cnt = document.querySelector('li.aclass').innerHTML;

alert(someid_cnt +'\n'+ aclass1_cnt);
</script>

querySelectorAll()

querySelectorAll() returneaza o lista de elemente din document care se potrivesc cu grupul de selectori specificati.
Daca sirul "selectori" contine pseudo-elemente CSS, returneaza o lista goala (navigatoarele WebKit au un "bug": daca sirul "selectori" contine pseudo-elemente CSS, returneaza obiectul <html>).
Sintaxa:
var elementList = document.querySelectorAll('selectori');
- "selectori" e un sir cu unul sau mai multi selectori CSS, separati prin virgula.
- elementList e variabila ce va contine lista cu obiectele HTML selectate.

Exemplu, creaza un Array cu continutul din tag-urile LI cu class="sites", si din tag-urile cu class="note" aflate in elementul cu id="idata":
<ul>
 <li class="sites">CoursesWeb.net</li>
 <li class="sites">MarPlo.net</li>
 <li>php.net</li>
</ul>
<div id="idata">
 <span class="note">Cursuri Web Development</span>
 <span class="note">querySelector si querySelectorAll</span>
</div>

<script type="text/javascript">
// preia toate tag-urile LI cu class="sites", si tag-urile cu class="note" din elementul cu id="idata"
var elm_list = document.querySelectorAll('li.sites, #idata .note');
var nr_elm = elm_list.length;         // numarul de elemente din elm_list

var arr_cnt = [];       // array pt. continutul din elm_list

// parcurge obiectul elm_list, si adauga in arr_cnt continutul fiecarui element
for(var i=0; i<nr_elm; i++) {
  arr_cnt.push(elm_list[i].innerHTML);
}

// test, arata datele din arr_cnt
alert(arr_cnt);
</script>
- Clic pe butonul "Test" ca sa vedeti rezultatul.

Diferenta dintre querySelector() si querySelectorAll() este aceea ca querySelector() returneaza un singur obiect cu primul element HTML care se potriveste cu "selectori", dar querySelectorAll() returneaza o lista de obiecte cu toate elementele HTML care se potrivesc cu "selectori".


• Pentru a limita cautarea obiectelor HTML la un singur element (nu in tot documentul), se pot aplica aceste functii la un obiect cu elementul de interes.
obiectElement.querySelector('selectori')

obiectElement.querySelectorAll('selectori')

- Iata un alt exemplu cu querySelectorAll(), selectarea se face pe un anumit element, nu pe "document". Cand cursorul de la mouse e pe tag-ul <a> selectat, adresa URL e adaugata intr-un anumit DIV.
<div id="seeurl">Arata adresa URL.</div>
<ul id="sites">
 <li><a href="http://coursesweb.net/javascript/" title="Curs JavaScript">Curs JavaScript</a></li>
 <li><a href="http://marplo.net/" title="Cursuri Jocuri Anime">Cursuri Jocuri Anime</a></li>
</ul>

<script type="text/javascript">
// preia tag-urile A din LI adaugate in elementul cu id="idata"
var elm_list = document.getElementById('sites').querySelectorAll('li a');
var nr_elm = elm_list.length;         // numar de elemente in elm_list

// parcurge obiectul elm_list
for(var i=0; i<nr_elm; i++) {
  // inregistreaza eveniment onmouseover sa adauge in #seeurl adresa din "href" a fiecarui <a> selectat
  elm_list[i].onmouseover = function() {
    document.getElementById('seeurl').innerHTML = this.href;
  }

  // inregistreaza eveniment onmouseover sa adauge in #seeurl un anumit text
  elm_list[i].onmouseout = function() {
    document.getElementById('seeurl').innerHTML = 'Arata adresa URL.';
  }
}
</script>
- Demo. Puneti cursorul de la mouse pe fiecare link.
Arata adresa URL.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
querySelector si querySelectorAll

Last accessed pages

  1. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (1454)
  2. Viitor simplu si continuu - Future Tense Simple and Continuous (673)
  3. Trecutul simplu si continuu - Past Tense Simple and Continuous (1382)
  4. Amigo Pancho 5 Artic Peru (1)
  5. Verbe modale - Modal verbs - CAN, COULD, MAY, MIGHT, MUST (932)

Popular pages this month

  1. Bubbles3 (3168)
  2. Gramatica limbii engleze - Prezentare Generala (2455)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (2213)
  4. Butterfly Kyodai (2011)
  5. Zuma Deluxe (1950)