Document Object Model

នៅ​ក្នុង​បរិបទ​នៃ browser ពាក្យ​ថា Document Object Model ឬ DOM គឺ​ជា​បណ្តុំ​នៃ​ក្បួន​វិធី​និង​ទិន្នន័យ​ទាំងឡាយ​ជា​ភាសា JS ប្រើ​សំរាប់ បង្កើត លប់ និងឬ រចនា​ធាតុ HTML ទាំងឡាយ​ដែល​មាន​នៅ​ក្នុង​ browser ។ យ៉ាងណាម៉ិញ DOM ខុស​ពី BOM នៅ​ត្រង់​ថា DOM គឺ​ជា​វត្ថុ​ទាំងឡាយ​ដែល​ជា​ឯកសារ​មាន​នៅ​ក្នុង​ទំព័រ​របស់ browser រួម​ទាំង​ក្បួន​វិធី​ទាក់ទង​នឹង​ឯកសារ​ទាំងនោះ​ផង​ដែរ​។ ចំណែក​ឯ BOM វិញ គឺ​ជា​ក្បួន​វិធី​និង​ទិន្នន័យ​ទាក់ទង​ទៅ​នឹង​រូបរាង​បង្អួច​របស់ browser និង​អ្វី​ៗ​ផ្សេង​ទៀត ដែល​មិន​មែន​ជា​ឯកសារ HTML មាន​នៅ​ក្នុង​ទំព័រ​របស់ browser ។

យ៉ាងណាម៉ិញ នៅ​ពេល​ដែល​ browser ត្រូវ​បើក​ឡើង វត្ថុ​នៃ​ភាសា JS ទាំងឡាយ ទាក់ទង​នឹង​ធាតុ HTML និមួយ​ៗ​នៅ​ក្នុង​ទំព័រ​របស់ browser ត្រូវ​បាន​បង្កើត​ឡើង​ក្នុង​ទំរង់​ជា​ឋានានុក្រម​មួយ​ដ៏​ជាក់លាក់​ មាន​ជា​ឧទាហរណ៍​ដូច​នៅ​ក្នុង​រូប​ខាង​ក្រោម​នេះ៖


វត្ថុ​និមួយ​ៗ​នៅ​ក្នុង​ឋានានុក្រម​នៃ​ឯកសារ HTML ដែល​ជា​ទំព័រ​របស់ browser ត្រូវ​ហៅ​ថា ថ្នាំង (node) ដែល​នៅ​ក្នុង​នោះ​មាន​វិធី​និង​ទិន្នន័យ​ដែល​យើង​អាច​យក​មក​ប្រើប្រាស់ សំរាប់​លុប បង្កើត និង​ឬ កែច្នៃ​ធាតុ HTML នៅ​ក្នុង browser បាន​គ្រប់​ពេលវេលា​។

មុន​គេ​បង្អស់ យើង​ចាំបាច់​ត្រូវ​យក​វិធី​មានស្រាប់​នៅ​ក្នុង​ DOM មួយ​ចំនួន​មក​ប្រើ ក្នុង​គោលបំណង​ភ្ជាប់​ទំនាក់ទំនង​ជាមួយ​នឹង​ធាតុ HTML ទាំងឡាយ​ជាមុន​សិន មុន​នឹង​ធ្វើ​ការកែប្រែ​អ្វី​មួយ​ទៅ​លើ​ធាតុ HTML ទាំងនោះ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖
<!DOCTYPE html>
<html>
  <head>
    <link href='https://fonts.googleapis.com/css?family=Odor+Mean+Chey' rel='stylesheet'>
  </head>
  <body style="font:14px/1.5 'Odor Mean Chey'">
  
  	<input onclick="myFunction()" type="button" value="សាកល្បង" />
  	

<script> function myFunction(){ var text = prompt("សរសេរ​អ្វី​មួយ​នៅ​​ខាង​ក្រោម​នេះ៖"); var element = document.getElementById("info"); element.innerHTML = "អត្ថបទ​ដែល​​អ្នក​បាន​សរសេរ​គឺ៖ «" + text + "»"; } </script> </body> </html>


នៅ​លើ​បន្ទាត់​លេខ 14 គឺ​ជា​ការយក​វិធី​មាន​ស្រាប់​ឈ្មោះ getElementById() នៅ​ក្នុង DOM មក​ប្រើ​ ក្នុង​គោលបំណង​ភ្ជា់ប​ទំនាក់ទំនង​ជាមួយ​នឹង​ធាតុ HTML ដែល​មាន​អត្តសញ្ញាណ​ជា info ។

នៅ​លើ​បន្ទាត់​លេខ 15 គឺ​ជា​ការ​បញ្ចូល​អត្ថបទ​បាន​មក​ពី​អ្នក​ប្រើប្រាស់ ចូល​ទៅ​ក្នង​ធាតុ HTML មាន​អត្តសញ្ញាណ​ជា info ដែល​ត្រូវ​បាន​ភ្ជាប់​ទំនាក់ទំនង​នៅ​លើ​បន្ទាត់​លេខ​ 14 ។

Finding HTML Elements
Method Description
document.getElementById(id) Find an element by element id
document.getElementsByTagName(name) Find elements by tag name
document.getElementsByClassName(name) Find elements by class name

Changing HTML Elements
Method/Property Description
element.innerHTML = new html content Change the inner HTML of an element
element.attribute = new value Change the attribute value of an HTML element
element.style.property = new style Change the style of an HTML element
element.setAttribute(attribute, value) Change the attribute value of an HTML element

Adding and Deleting Elements
Method Description
document.createElement(element) Create an HTML element
document.removeChild(element) Remove an HTML element
document.appendChild(element) Add an HTML element
document.replaceChild(new, old) Replace an HTML element
document.write(text) Write into the HTML output stream