‎‎جاوااسكريپت پيمايش دامJavaScript HTML DOM Navigation -‎

Previous >    <Next  

‎با استفاده از درخت عناصرHTML و روابط گره هاي درخت ميتوان با جاوااسكريپت دام، آن درخت را ‎پيمايش نمود.

‎‎گره هاي دامDOM Nodes -‎

‎‎مطابق استانداردW3C HTML DOM هر چيزي در يك سندHTML يك گره‎(node)‎ است:

DOM HTML tree

‎باHTML DOM تمام گره هاي درخت سند قابل دسترس جاوااسكريپت هستند . ميتوان نود جديد ‎اضافه ، نودهاي موجود را اصلاح ويا نودي را حذف نمود.

‎‎روابط گره هاNode Relationships -‎

‎گره هاي موجود در درخت سند، داراي روابط سلسله مراتبي هستند .براي توصيف روابط از اصطلاحات ‎والدين، فرزند و خواهر وبرادري استفاده ميشود:

<html>

  <head>
    <title>DOM Tutorial</title>
  </head>

  <body>
    <h1>DOM Lesson one</h1>
    <p Hello world!</p>
  </body>

</html>
Node tree

‎‎از برنامهHTML بالا ميتوان موارد زيرا برداشت كرد:

‎‎و

‎‎پيمايش مابين گره هاNavigatig Between Nodes -‎

‎‎با جاوااسكريپت واستفاده از ويژگي نودها در زير، ميتوان مابين نودها پيمايش نمود:

‎‎نودهاي اولاد ومقاديرChild Nodes and Node Values -‎

‎‎يك خطاي رايج در پردازشDOM اين است كه انتظارداشته باشيد كه يك گره عنصر حاوي متن باشد .

‎‎مثال ـ نمونه مورد فوق

<title id="demo">DOM Tutorial</title>

‎عنصر‎<title>‎در مثال فوق داراي متن نمي باشد .اين تيتر براي استفاده ‎مرورگر براي نمايش در تب بالاي صفحه بكارميرود ودر صفحه انعكاسي ندارد. ‎اين عنصرشامل نود متني بوده ومقدارآن‎"DOM Tutorial‎"‎است .

‎‎مقدار نود متني ميتواند با ويژگي‎innerHTML‎ نود قابل دسترس باشد، مطابق زير:

myTitle = document.getElementById("demo").innerHTML;

‎دسترسي به ويژگي‎innerHTML‎ مانند دسترسي به ‎nodeValue‎ ‎فرزند اول است:

myTitle = document.getElementById("demo").firstChild.nodeValue;

‎‎دسترسي به فرزند اول نيز ميتواند مطابق زير انجام شود:

myTitle = document.getElementById("demo").childNodes[0].nodeValue;

‎‎همه سه مثال زير محتوي عنصر‎<h1>‎ را در عنصر‎<p>‎ كپي ميكنند .

‎‎مثال ـ كپي با‎innerHTML

<html>
<body>

<h1id="id01">My First Page</h1>
<p id="id02"></p>

<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML;
</script >

</body>
</html>

--(go to editor for change code and run)

‎‎مثال ـ كپي با‎firstChild.nodeValue

<html>
<body>

<h1id="id01">My First Page</h1>
<p id="id02"></p>

<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue;
</script >

</body>
</html>

--(go to editor for change code and run)

‎‎مثال ـ كپي با‎childNodes[0].nodeValue

<html>
<body>

<h1id="id01">My First Page</h1>
<p id="id02">Hello!</p>

<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue;
</script >

</body>
</html>

--(go to editor for change code and run)

‎‎ويژگيinnerHTML -‎

‎در ارائه اين مطالب براي دسترسي به محتوي عنصرHTML از ‎innerHTML‎ استفاده ‎ميكنيم .با اين حال ، يادگيري روش هاي ديگر بالا براي درك ساختار درختي وپيمايشDOM مفيد ‎است.

‎‎نود هاي ريشه دامDOM Root Nodes -‎

‎‎دو ويژگي خاص براي دسترسي به سند كامل وجود دارد:

‎‎مثال ـ‎document.body

<html>
<body>

<h2>JavaScript HTMLDOM</h2>
<p Displaying document.body</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = document.body.innerHTML;
</script >

</body>
</html>

--(go to editor for change code and run)

‎‎مثال ـ‎document.documentElement

<html>
<body>

<h2>JavaScript HTMLDOM</h2>
<p Displaying document.documentElement</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = document.documentElement.innerHTML;
</script >

</body>
</html>

--(go to editor for change code and run)

‎‎ويژگيnodeName

‎‎ويژگي‎nodeName‎نام يك نود را مشخص ميكند .

‎‎مثال ـ

<h1id="id01">My First Page</h1>
<p id="id02"></p>

<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName;
</script >

--(go to editor for change code and run)

‎‎توجه ـ‎nodeName‎ هميشه شامل نام تگ عنصر با حروف بزرگ است .

‎‎ويژگيnodeValue

‎‎ويژگي‎nodeValue‎ مقدار يك نود را مشخص ميكند .

‎‎ويژگيnodeType

‎‎ويژگي‎nodeType‎ فقط خواندني است، آن نوع نود را برگشت ميدهد .

‎‎مثال ـnodeType

<h1id="id01">My First Page</h1>
<p id="id02"></p>

<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType;

--(go to editor for change code and run)

‎‎مهمترين ويژگيnodeType عبارتند از :

‎node ‎type ‎example
‎ELEMENT_NODE ‎1 ‎<h1 class="heading">W3Schools</h1>
‎ATTRIBUTE_NODE ‎2 ‎class="heading" (deprecated)
‎TEXT_NODE ‎3 ‎W3Schools
‎COMMENT_NODE ‎8 ‎<!-- This is a comment -->
‎DOCUMENT_NODE ‎9 ‎HTML document itself(parent of <html>)
‎DOCUMENT_TYPE_NODE ‎10 ‎<!Doctype html>

‎نوع‎2‎ درHTML DOM منسوخ شده است ، اما كارميكند .آن درXML DOM منسوخ ‎نشده است.


Previous >    <Next