ÙÙØªÛ elementÙØ§ ب٠ÛکدÛگر ÙØ²Ø¯ÛÚ© ÙØ³ØªÙØ¯Ø Ø§Ø³ØªÙØ§Ø¯Ù از ÙÛÚÚ¯ÛâÙØ§Û DOM navigation عاÙÛ Ø§Ø³Øª. ا٠ا اگر elementÙØ§ ÙØ²Ø¯ÛÚ© ÙÙ ÙØ¨Ø§Ø´Ùد ÚÙØ ÚÚ¯ÙÙÙ Ø¨Ø§ÛØ¯ ب٠ÛÚ© element Ø¯ÙØ®ÙØ§Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ Ø
Ø±ÙØ´âÙØ§Û جستجÙÛ Ø¯ÛÚ¯Ø±Û Ø¨Ø±Ø§Û Ø¢Ù ÙØ¬Ùد دارد.
id ÛØ§ تÙÙØ§ document.getElementById
اگر ÛÚ© elementØ Ø¯Ø§Ø±Ø§Û attribute (ÙÛÚÚ¯Û) id Ø¨Ø§Ø´Ø¯Ø Ù
ÛâØªÙØ§ÙÛÙ
با Ø§Ø³ØªÙØ§Ø¯Ù از methodØ§Û Ø¨Ù ÙØ§Ù
document.getElementById(id) Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
. اÙÙ
ÛØªÛ ÙØ¯Ø§Ø±Ø¯ ک٠آ٠element کجا است.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<div id="elem">
<div id="elem-content">Element</div>
</div>
<script>
// element Ø¯Ø³ØªØ±Ø³Û Ø¨Ù
let elem = document.getElementById('elem');
// Ù¾Ø³âØ²Ù
ÛÙÙâÛ Ø¢Ù Ø±Ø§ ÙØ±Ù
ز Ù
ÛââÚ©ÙÛÙ
elem.style.background = 'red';
</script>
ÙÙ
ÚÙÛÙØ Ù
ØªØºÛØ±Û global ÙØ¬Ùد دارد ک٠با id ÙØ§Ù
âÚ¯Ø°Ø§Ø±Û Ø´Ø¯Ùâ Ø§Ø³Øª ٠ب٠element ارجاع Ù
ÛâØ¯ÙØ¯:
<div id="elem">
<div id="elem-content">Element</div>
</div>
<script>
// است elem Ø¨Ù ÙØ§Ù
id با DOM-element Ø§Ø±Ø¬Ø§Ø¹Û Ø¨Ù elem
elem.style.background = 'red';
// درÙÙ Ø®ÙØ¯ ÛÚ© خط ØªÛØ±Ù (-) Ø¯Ø§Ø±Ø¯Ø Ù¾Ø³ ÙÙ
ÛâØªÙØ§Ùد ÙØ§Ù
ÛÚ© Ù
ØªØºÛØ± باشد elem-content
// اÙ
ا Ù
ÛâØªÙØ§ÙÛÙ
با Ø§Ø³ØªÙØ§Ø¯Ù از براکت ([]) Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
: window['elem-content']
</script>
â¦.٠گر اÛÙÚ©Ù ÛÚ© Ù ØªØºÛØ± Ø¬Ø§ÙØ§ اسکرÛپت را با ÙÙ ÛÙ ÙØ§Ù تعرÛÙ Ú©ÙÛÙ . در اÛÙ ØµÙØ±Øª آ٠اÙÙÙÛØª دارد:â
<div id="elem"></div>
<script>
let elem = 5; // <div id="elem"> Ù¾ÙØ¬ Ø§Ø³ØªØ ÙÙ Ø§Ø±Ø¬Ø§Ø¹Û Ø¨Ù elem Ø§ÙØ§Ù Ù
ÙØ¯Ø§Ø±
alert(elem); // 5
</script>
.ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù Ø§Ø³Øª ا٠ا Ø¨Ù Ø·ÙØ± ٠ع٠ÙÙ Ø¨Ø±Ø§Û Ø³Ø§Ø²Ú¯Ø§Ø±Û Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâØ´ÙØ¯ in the specification اÛÙ Ø±ÙØªØ§Ø± در
.Ø¯Ø³ØªØ±Ø³Û ÙØ¯Ø§Ø±Ø¯Ø ٠شخص ÙÛØ³Øª Ú©Ù Ù ØªØºÛØ± از کجا Ù ÛâØ¢ÛØ¯ HTML را Ù ÛâØ®ÙØ§Ùد ٠ب٠JS ÙÙØ´ØªÙ شدÙâØ§ÙØ¯ Ù ÙØ§Ø³Ø¨ است ا٠ا Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ø§ÛØ¯ÙâÛ Ø®ÙØ¨Û ÙÛØ³Øª ٠٠٠ک٠است تعارضâÙØ§ÛÛ Ø¯Ø± ÙØ§Ù âÚ¯Ø°Ø§Ø±Û Ø¨Ù ÙØ¬Ùد Ø¢ÙØ±Ø¯ Ù ÙÙ ÚÙÛÙ ÙÙØªÛ Ú©Ø³Û Ú©Ø¯ HTML در inline ÙØ§Û سادÙâØ§Û Ú©Ù Ø¨Ù ØµÙØ±Øªscript ب٠٠ا Ú©Ù Ú© Ú©ÙØ¯. اÛ٠کار Ø¨Ø±Ø§Û DOM Ù JS ÙØ§Ûnamespace Ù Ø±ÙØ±Ú¯Ø± ØªÙØ§Ø´ Ù ÛâÚ©ÙØ¯ ک٠با ØªØ±Ú©ÛØ¨
.ارجاع دÙÛÙ
element Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛÙ
تا Ø¨Ù Ø·ÙØ± Ù
ستÙÛÙ
ب٠ÛÚ© id از کجا Ø¢Ù
د٠است Ù
ا Ø¨Ø±Ø§Û Ú©ÙØªØ§ÙÛ Ù Ø§Ø®ØªØµØ§Ø± از elemnt اÛÙØ¬Ø§ در اÛ٠آÙ
ÙØ²Ø´ ÙÙØªÛ Ù
شخص است Ú©Ù
ØªØ±Ø¬ÛØ داد٠٠ÛâØ´ÙØ¯document.getElementById` در Ø²ÙØ¯Ú¯Û ÙØ§ÙعÛ
idÙÙØ· ÛÚ© element با id داد٠شد٠Ù
ÛâØªÙØ§Ùد در document ÙØ¬Ùد داشت٠باشد.
اگر ÚÙØ¯ element با ÛÚ© id Ù
شخص داشت٠باشÛÙ
Ø Ø±ÙØªØ§Ø± methodØ§Û Ú©Ù Ø§Ø² Ø¢Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙØ¯ Ù
ÛâØªÙØ§Ùد ØºÛØ±ÙØ§Ø¨Ù Ù¾ÛØ´âبÛÙÛ Ø¨Ø§Ø´Ø¯. Ø¨Ø±Ø§Û Ù
ثا٠document.getElementById Ù
Ù
ک٠است ÙØ± ÛÚ© از Ø¢Ù elementÙØ§ را Ø¨Ù ØµÙØ±Øª تصادÙÛ Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯. پس ÙØ·Ùا ب٠اÛÙ ÙØ§ÙÙÙ ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ù id را Ù
ÙØØµØ± Ø¨Ù ÙØ±Ø¯ ÙÚ¯Ù Ø¯Ø§Ø±ÛØ¯.
document.getElementById, ÙÙ anyElem.getElementById.داد٠شد٠Ù
Ûâگردد id Ø¨Ù Ø¯ÙØ¨Ø§Ù document صدا بزÙÛÙ
. آ٠در تÙ
اÙ
document را رÙÛ Ø§Ø´ÛØ§Û getElementByIdââ Ù
ا تÙÙØ§ Ù
ÛâØªÙØ§ÙÛÙ
querySelectorAll
با Ø§Ø®ØªÙØ§ÙØ Ø¬Ø§Ù
Ø¹âØªØ±ÛÙ Ø±ÙØ´ elem.querySelectorAll(css) Ø¨ÙØ¯ ک٠تÙ
اÙ
elementÙØ§Û درÙÙ elem ک٠با css selector Ø¯Ø§Ø¯Ù Ø´Ø¯Ù ØªØ·Ø§Ø¨Ù Ø¯Ø§Ø±ÙØ¯ را Ø§ÙØªØ®Ø§Ø¨ Ù
ÛâÚ©ÙØ¯.
اÛÙØØ§ Ø¨Ù Ø¯ÙØ¨Ø§Ù تÙ
اÙ
<li>ÙØ§ÛÛ ÙØ³ØªÛÙ
ک٠آخرÛÙ ÙØ±Ø²Ùد ÙØ³ØªÙد:
<ul>
<li>The</li>
<li>test</li>
</ul>
<ul>
<li>has</li>
<li>passed</li>
</ul>
<script>
let elements = document.querySelectorAll('ul > li:last-child');
for (let elem of elements) {
alert(elem.innerHTML); // "test", "passed"
}
</script>
اÛÙ method ÙØ§Ùعا ÙØ¯Ø±ØªÙ ÙØ¯ Ø§Ø³ØªØ ÚÙÙ ÙØ± css selectorØ§Û Ù ÛâØªÙØ§Ùد Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯.
(تا درÙÙÛâØªØ±Û٠آÙâÙØ§ <html> Ø¨Ù ØªØ±ØªÛØ¨ ت٠در تÙ: از Ø¨ÛØ±ÙÙÛâØªØ±ÛÙ) Ù
جÙ
ÙØ¹ÙâØ§Û Ø§Ø² Ø¹ÙØ§ØµØ±Û Ú©Ù ÙØ´Ø§Ùگر Ø§ÙØ§Ù رÙÛ Ø¢ÙâÙØ§ است را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. document.querySelectorAll(':hover')ÙÛØ² Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâØ´ÙØ¯. Ø¨Ø±Ø§Û Ù
ثا٠:active Ù :hover ÙØ§ÛÛ Ù
ث٠Pseudo-class از
querySelector
ÙØ±Ø§Ø®ÙاÙÛ elem.querySelector(css) اÙÙÛÙ element را Ø¨Ø±Ø§Û css selector داد٠شد٠برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
ب٠عبارت دÛÚ¯Ø±Ø ÙØªÛج٠با elem.querySelectorAll(css)[0] Ûکسا٠است اÙ
ا دÙÙ
Û Ø¨Ù Ø¯ÙØ¨Ø§Ù تÙ
اÙ
elementÙØ§ است Ù ÛÚ©Û Ø±Ø§ Ø§ÙØªØ®Ø§Ø¨ Ù
ÛâÚ©ÙØ¯ در ØØ§ÙÛ Ú©Ù elem.querySelector ÙÙØ· Ø¨Ù Ø¯ÙØ¨Ø§Ù ÛÚ©Û Ø§Ø³Øª. پس ÙÙ
Ø³Ø±ÛØ¹âتر است Ù ÙÙ
Ø¨Ø±Ø§Û ÙÙØ´ØªÙ Ú©ÙØªØ§ÙâØªØ± است.
matches
Ø±ÙØ´âÙØ§Û ÙØ¨ÙÛ Ø¯Ø± DOM جستج٠٠ÛâÚ©Ø±Ø¯ÙØ¯.
عبارت elem.matches(css) در جستجÙÛ ÚÛØ²Û ÙÛØ³ØªØ ÙÙØ· ÚÚ© Ù
ÛâÚ©ÙØ¯ Ú©Ù element با CSS-selector داد٠شد٠Ù
Ø·Ø§Ø¨ÙØª دارد ÛØ§ ÙÙ Ù true ÛØ§ false برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
اÛÙ Ø±ÙØ´ ز٠اÙÛ Ø¨Ù Ú©Ø§Ø± Ù ÛâØ¢ÛØ¯ Ú©Ù Ù ÛâØ®ÙØ§ÙÛ٠رÙÛ elementÙØ§ÛÛ (٠ث٠آراÛÙ ÛØ§ ÙÙ ÚÛÙ ÚÛØ²Û) iterate Ú©ÙÛ٠٠آÙâÙØ§ÛÛ Ú©Ù Ù Ø·ÙÙØ¨ ÙØ³ØªÙد را ÙÛÙØªØ± Ú©ÙÛÙ .
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<a href="http://example.com/file.zip">...</a>
<a href="http://ya.ru">...</a>
<script>
// باشد document.body.children Ù
ÛâØªÙØ§Ùد ÙØ± Ù
جÙ
ÙØ¹ÙâØ§Û Ø¨Ù Ø¬Ø§Û
for (let elem of document.body.children) {
if (elem.matches('a[href$="zip"]')) {
alert("اÛ٠آرشÛ٠ارجاع Ù
ÛâØ¯ÙØ¯ ب٠: " + elem.href );
}
}
</script>
closest
ÙØ§ÙØ¯ÙØ§Û ÛÚ© element Ø¹Ø¨Ø§Ø±ØªâØ§ÙØ¯ از: Ù¾Ø¯Ø±Ø Ù¾Ø¯Ø± Ù¾Ø¯Ø±Ø Ù¾Ø¯Ø± آ٠٠⦠. اÛÙ ÙØ§ÙØ¯ÙØ§ با ÛکدÛگر Ø²ÙØ¬ÛرÙâØ§Û Ø§Ø² ÙØ§ÙØ¯ÙØ§ را از ÛÚ© element ب٠س٠ت Ø¨Ø§ÙØ§ تشکÛÙ Ù ÛâØ¯ÙÙØ¯.
Ù
تد elem.closest(css) Ø¨Ù Ø¯ÙØ¨Ø§Ù ÙØ²Ø¯ÛÚ©âØªØ±ÛÙ ÙØ§ÙØ¯Û Ø§Ø³Øª ک٠با CSS-selector تطاب٠دارد. Ø®ÙØ¯ elem ÙÙ
شاÙ
٠اÛ٠جستج٠Ù
ÛâØ´ÙØ¯.
ب٠عبارت دÛگر Ù
تد closest از element ب٠سÙ
ت Ø¨Ø§ÙØ§ Ù
ÛâØ±ÙØ¯ Ù ÙØ± ÛÚ© از ÙØ§ÙØ¯ÙØ§ را ÚÚ© Ù
ÛâÚ©ÙØ¯. اگر با selector Ù
Ø·Ø§Ø¨ÙØª Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø¬Ø³ØªØ¬Ù Ù
تÙÙÙ Ù
ÛâØ´ÙØ¯ Ù Ø¢Ù ÙØ§Ùد Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<h1>Contents</h1>
<div class="contents">
<ul class="book">
<li class="chapter">بخش 1</li>
<li class="chapter">بخش 2</li>
</ul>
</div>
<script>
let chapter = document.querySelector('.chapter'); // LI
alert(chapter.closest('.book')); // UL
alert(chapter.closest('.contents')); // DIV
alert(chapter.closest('h1')); // null (ÛÚ© ÙØ§Ùد ÙÛØ³Øª h1 ÚÙÙ)
</script>
getElementsBy*
ÙÙ ÚÙÛÙ Ø±ÙØ´âÙØ§Û دÛÚ¯Ø±Û Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬Ù Ø¨Ø±Ø§Û ÛÚ© node با tagØ class Ù â¦ ÙØ¬Ùد دارد.
اÙ
Ø±ÙØ²Ù Ø¢ÙâÙØ§ Ú©Ù
تر Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯ ÚÙÙ querySelector ÙØ¯Ø±ØªÙ
ÙØ¯ØªØ± است Ù Ø¨Ø±Ø§Û ÙÙØ´ØªÙ Ø³Ø±ÛØ¹âتر است.
پس اÛÙØ¬Ø§ ٠ا Ø¨ÛØ´ØªØ± Ø¢ÙâÙØ§ را Ø¨Ø±Ø§Û Ú©Ø§Ù Ù Ø¨ÙØ¯Ù Ù¾ÙØ´Ø´ Ù ÛâØ¯ÙÛ٠ا٠ا ÙÙÙØ² Ù ÛâØªÙØ§ÙÛØ¯ Ø¢ÙâÙØ§ را در scriptÙØ§Û ÙØ¯ÛÙ Û Ù¾ÛØ¯Ø§ Ú©ÙÛØ¯.
- عبارت
elem.getElementsByTagName(tag)Ø¨Ù Ø¯ÙØ¨Ø§Ù elementÙØ§ÛÛ Ø¨Ø§ tag داد٠شد٠است Ù Ù Ø¬Ù ÙØ¹ÙâÛ Ø¢ÙâÙØ§ را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. پارا٠ترtagÙÙ ÚÙÛÙ Ù ÛâØªÙØ§Ùد ÛÚ© ستار٠باشد"*"Ø¨Ù Ù Ø¹ÙØ§Û ت٠ا٠tag ÙØ§. - عبارت
elem.getElementsByClassName(className)ت٠ا٠elementÙØ§ÛÛ Ú©Ù Ú©ÙØ§Ø³ CSS داد٠شد٠را Ø¯Ø§Ø±ÙØ¯ بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. - عبارت
document.getElementsByName(name)ت٠ا٠elementÙØ§ÛÛ Ú©Ùnameب٠عÙÙØ§Ù attribute ب٠آÙâÙØ§ داد٠شد٠است را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù Ø¨Ø³ÛØ§Ø± Ú©Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:â
//تÙ
اÙ
div ÙØ§Û درÙÙ document را Ù
ÛâÚ¯ÛØ±Ø¯.
let divs = document.getElementsByTagName('div');
Ø¨ÛØ§ÛÛØ¯ تÙ
اÙ
tagÙØ§Û input درÙ٠اÛÙ table را Ù¾ÛØ¯Ø§ Ú©ÙÛÙ
:â
<table id="table">
<tr>
<td>س٠شÙ
ا:</td>
<td>
<label>
<input type="radio" name="age" value="young" checked> Ú©Ù
تر از 18
</label>
<label>
<input type="radio" name="age" value="mature"> از 18 تا 50
</label>
<label>
<input type="radio" name="age" value="senior"> Ø¨ÛØ´ØªØ± از 60
</label>
</td>
</tr>
</table>
<script>
let inputs = table.getElementsByTagName('input');
for (let input of inputs) {
alert( input.value + ': ' + input.checked );
}
</script>
"s" Ø¹Ø¨Ø§Ø±ØªØ¨Ø±ÙØ§Ù
ÙâÙÙÛØ³âÙØ§Û تازÙââکار گاÙÛ Ø§ÙÙØ§Øª ØØ±Ù ââ"s" را ÙØ±Ø§Ù
ÙØ´ Ù
ÛâÚ©ÙÙØ¯. ÛØ¹ÙÛØ Ø¢ÙâÙØ§ Ø³Ø¹Û Ù
ÛâÚ©ÙÙØ¯ Ø¨Ù Ø¬Ø§Û getElementsByTagName عبارت getElementByTagName را ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÙØ¯.
ØØ±Ù "s" در getElementById ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ Ø²ÛØ±Ø§ ÛÚ© element تک را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. اÙ
ا getElementsByTagName Ù
جÙ
ÙØ¹ÙâØ§Û Ø§Ø² Ø¹ÙØ§ØµØ± را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Øâ پس ÛÚ© "s" در Ø¢Ù ÙØ³Øª.
ÛÚ© Ø§Ø´ØªØ¨Ø§Ù Ø±Ø§ÛØ¬ دÛگر تازÙâکاراÙ٠اÛ٠است ک٠بÙÙÛØ³ÛÙ :
// کار ÙÙ
ÛâÚ©ÙØ¯
document.getElementsByTagName('input').value = 5;
اÛ٠کار ÙÙ ÛâÚ©ÙØ¯ØâÚÙÙ ÛÚ© Ù Ø¬Ù ÙØ¹Ù از ÙØ±ÙدÛâÙØ§ را Ù ÛâÚ¯ÛØ±Ø¯ Ù Ù ÙØ¯Ø§Ø± را Ø¨Ù Ø¬Ø§Û element درÙÙ Ø¢ÙØ Ø¨Ù Ø¢Ù Ø§ÙØªØ³Ø§Ø¨ Ù ÛâØ¯ÙØ¯.
٠ا Ø¨Ø§ÛØ¯ ÛØ§ رÙÛ Ø¢Ù Ù Ø¬Ù ÙØ¹Ù iterate Ú©ÙÛÙ ÛØ§ ÛÚ© element را با Ø¹ÙØµØ± Ø¢Ù Ø¨Ú¯ÛØ±Û٠٠بعد Ø¨Ù Ø¢Ù Ø§ÙØªØ³Ø§Ø¨ دÙÛÙ . ٠ث٠اÛÙ:â
// Ø¨Ø§ÛØ¯ کار Ú©ÙØ¯ (اگر ÛÚ© ÙØ±ÙØ¯Û ÙØ¬Ùد داشت٠باشد)
document.getElementsByTagName('input')[0].value = 5;
.article ÙØ§Ûelement جستج٠براÛ
<form name="my-form">
<div class="article">Ù
ÙØ§ÙÙ</div>
<div class="long article">Ù
ÙØ§ÙÙ Ø·ÙÙØ§ÙÛ</div>
</form>
<script>
// name Ù¾ÛØ¯Ø§ کرد٠با Ø§Ø³ØªÙØ§Ø¯Ù از ÙÛÚÚ¯Û
let form = document.getElementsByName('my-form')[0];
// form داخ٠class Ù¾ÛØ¯Ø§ کرد٠با Ø§Ø³ØªÙØ§Ø¯Ù از
let articles = form.getElementsByClassName('article');
alert(articles.length); // 2, Ù¾ÛØ¯Ø§ شد article با Ú©ÙØ§Ø³ element 2
</script>
Ù Ø¬Ù ÙØ¹ÙâÙØ§Û Ø²ÙØ¯Ù
.Ù
ÛâØ´ÙÙØ¯ update را Ù
ÙØ¹Ú©Ø³ Ù
ÛâÚ©ÙÙØ¯ Ù ÙÙØªÛ تغÛÛØ± Ù
ÛâÚ©ÙØ¯Ø Ø¨Ù ØµÙØ±Øª Ø®ÙØ¯Ú©Ø§Ø± document ÛÚ© Ù
جÙ
ÙØ¹ÙâÛ Ø²ÙØ¯Ù برÙ
ÛâگرداÙÙØ¯. ÚÙÛÙ Ù
جÙ
ÙØ¹ÙâÙØ§ÛÛ ÙÙ
ÛØ´Ù ÙØ¶Ø¹Ûت ÙØ¹ÙÛ "getElementsBy*" تÙ
اÙ
Ù
ØªØ¯ÙØ§Û
.دارÛÙ script در Ù Ø«Ø§Ù Ø²ÛØ± دÙ
.Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙØ¯ در ØØ§Ù ØØ§Ø¶Ø± Ø·Ù٠آ٠1 است <div> اÙÙÛ Ø§Ø±Ø¬Ø§Ø¹Û Ø¨Ù Ù
جÙ
ÙØ¹ÙâÛ
دÛگر را ببÛÙØ¯ پس Ø·Ù٠آ٠2 است <div> زÙ
اÙÛ Ø§Ø¬Ø±Ø§ Ù
ÛâØ´ÙØ¯ Ú©Ù Ù
Ø±ÙØ±Ú¯Ø± ÛÚ© script دÙÙ
ÛÙ
<div>div اÙÙ</div>
<script>
let divs = document.getElementsByTagName('div');
alert(divs.length); // 1
</script>
<div>div دÙÙ
</div>
<script>
alert(divs.length); // 2
</script>
.ÙØ§ استelement را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ ک٠شبÛÙ ÛÚ© آراÛÙâÛ Ø«Ø§Ø¨Øª static ÛÚ© Ù
جÙ
ÙØ¹ÙâÛ querySelectorAll ØÙ
ØªÙØ§Ø¨Ùا
.Ø®Ø±ÙØ¬Û 1 را Ù
ÛâØ¯ÙÙØ¯ script اگر Ø¨Ù Ø¬Ø§ÛØ´ از Ø¢Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø ÙØ± دÙ
<div>اÙÙ div</div>
<script>
let divs = document.querySelectorAll('div');
alert(divs.length); // 1
</script>
<div>Second div</div>
<script>
alert(divs.length); // 1
</script>
.Ø§ÙØ²Ø§ÛØ´ ÙÛØ§Ùت٠است static Ù Ø¬Ù ÙØ¹ÙâÛ Ødocument Ø¬Ø¯ÛØ¯ در div ØØ§Ùا Ù ÛâØªÙØ§ÙÛÙ ØªÙØ§Ùت را Ø¨Ù Ø±Ø§ØØªÛ ببÛÙÛÙ . بعد از Ø§ÛØ¬Ø§Ø¯ شد٠ÛÚ©
Ø®ÙØ§ØµÙ
.ÙØ¬Ùد دارد DOM ÙØ§ در node شش Ø±ÙØ´ اصÙÛ Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬Ù Ø¯Ø±
| Ø±ÙØ´ | جستج٠بر اساس ... | ÙØ±Ø§Ø®ÙاÙÛ Ø´ÙØ¯Ø element Ù ÛâØªÙØ§Ùد رÙÛ | Ø²ÙØ¯ÙØ |
querySelector |
CSS-selector | â | - |
querySelectorAll |
CSS-selector | â | - |
getElementById |
id |
- | - |
getElementsByName |
name |
- | â |
getElementsByTagName |
tag or '*' |
â | â |
getElementsByClassName |
class | â | â |
.ÙØ§Û ÙØ¯ÛÙ
Û ÛØ§Ùت Ø´ÙØ¯ script ÙÙ
گاÙÛ Ø¨Ù ØµÙØ±Øª Ù¾Ø±Ø§Ú©ÙØ¯Ù Ù
ÛâØªÙØ§Ùد Ù
ÙÛØ¯ باشد ÛØ§ در getElement(s)By Ø´Ø¯Ù Ø§Ø³ØªØ Ø§Ù
ا querySelectorAll Ù querySelector با Ø§Ø®ØªÙØ§Ù Ø¨ÛØ´ØªØ±ÛÙ Ø§Ø³ØªÙØ§Ø¯Ù از
Ø¹ÙØ§Ù٠بر Ø¢Ù:
.تطاب٠دارد ÛØ§ ÙÙ CSS-selector با elem Ø¨Ø±Ø§Û Ø§ÛÙ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯ Ú©Ù ÚÚ© Ú©ÙÛÙ
elem.matches(css) از عبارت -
.ÙÙ
ÚÚ© Ù
ÛâØ´ÙØ¯ elem Ø¯Ø§Ø¯Ù Ø´Ø¯Ù ØªØ·Ø§Ø¨Ù Ø¯Ø§Ø±ÙØ¯. Ø®ÙØ¯ CSS-selector Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬ÙÛ ÙØ²Ø¯ÛÚ©âØªØ±ÛÙ ÙØ§ÙØ¯ÙØ§ÛÛ Ø§Ø³Øª ک٠با elem.closest(css) عبارت -
Ù Ø¨ÛØ§ÛÛØ¯ اÛÙØ¬Ø§ ÛÚ© Ø±ÙØ´ دÛگر Ø¨Ø±Ø§Û Ø¨Ø±Ø±Ø³Û Ø±Ø§Ø¨Ø·Ù ÙØ§Ùد Ù ÙØ±Ø²Ùد را ÚÚ© Ú©ÙÛÙ
ØâÚÙÙ Ø¨Ø¹Ø¶Û ÙÙØªâÙØ§ Ù
ÙÛØ¯ است:
.را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ true Ù
ÙØ¯Ø§Ø± elemA.contains(elemB) Ø¨Ø§Ø´Ø¯Ø Ø¹Ø¨Ø§Ø±Øª elemA==elemB ÛØ§ ÙÙØªÛ Ú©Ù (elemA از ÙØ±Ø²ÙداÙ) باشد elemA داخ٠elemB اگر -
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)