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 cu selectori CSS ("id", "class").
querySelector()
returneaza primul element din documentul HTML care se potriveste cu grupul de selectori specificati, sau null daca nu e gasit.<h4>Exemplu querySelector()</h4> <ul> <li>CoursesWeb.net</li> <li class='aclass'>MarPlo.net</li> <li class='aclass'>GamV.eu</li> </ul> <p style='background:#fbfbb0;'>La clic pe urmatorul buton (preluat cu querySelector) se afiseaza la #resp continutul din primul LI cu class='aclass'.</p> <button id='btn1'>Click</button> <blockquote id='resp'>#resp</blockquote> <script> var btn = document.querySelector('#btn1'); btn.addEventListener('click', (ev)=>{ document.getElementById('resp').innerHTML = document.querySelector('li.aclass').innerHTML; }); </script>
querySelectorAll()
returneaza un array cu elementele care se potrivesc cu grupul de selectori specificati.<h4>Exemplu querySelectorAll()</h4> <ul> <li class='sites'>CoursesWeb.net</li> <li class='sites'>MarPlo.net</li> <li>GamV.eu.net</li> </ul> <div id='dv1'> Cursuri Web Development - <span class='note'>querySelector si querySelectorAll</span> </div> <p style='background:#fbfbb0;'>Se preiau intr-un array tag-urile LI cu class='sites', si tag-urile cu class='note' din #dv1 (cu selctorul: 'li.sites, #dv1 .note'), apoi, la clic pe urmatorul buton se afiseaza la #resp continutul lor.</p> <button id='btn1'>Click</button> <blockquote id='resp'>#resp</blockquote> <script> //array cu tag-urile LI cu class='sites', si tag-urile cu class='note' din elementul cu id='dv1' var elms = document.querySelectorAll('li.sites, #dv1 .note'); var btn = document.querySelector('#btn1'); btn.addEventListener('click', (ev)=>{ var re =''; // parcurge array-ul elms si preia in re un sir cu continutul din fiecare element for(var i=0; i<elms.length; i++) { re += elms[i].innerHTML +'<br>'; } //afiseaza sirul in #resp document.getElementById('resp').innerHTML = re; }); </script>
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 un array cu toate elementele HTML care se potrivesc cu "selectori".
<p style='background:#fbfbb0;'>Se preiau cu querySelectorAll() elementele din tag-ul cu id 'sites' returnate cu selctorul: 'li a'.<br> - Cand mouse-ul e deasupra urmatoarelor link-uri, se adauga in caseta de text adresa de la 'href'.</p> Adresa URL: <input type='text' id='txt1' /> <ul id='sites'> <li><a href='//coursesweb.net/javascript' title='Curs JavaScript'>Curs JavaScript</a></li> <li><a href='//marplo.net/' title='Cursuri online'>Cursuri online</a></li> </ul> <script> var txt1 = document.getElementById('txt1'); // preia tag-urile A din LI adaugate in elementul cu id='dv1' var elms = document.getElementById('sites').querySelectorAll('li a'); // parcurge array-ul elms si inregistreaza 'mouseenter' la fiecare for(var i=0; i<elms.length; i++){ elms[i].addEventListener('mouseenter', (ev)=>{ txt1.value = ev.target.href; }); } </script>
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquĆ. - Traiesc /Locuiesc aici.