JavaScript 操作HTML DOM元素

小灰灰 2021-09-14 02:18 705阅读 0赞

DOM概念

DOM是文档对象模型的简称,全名为“Document Object Model”,通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

可以通过浏览器的开发者工具进行观察DOM。

SouthEast

可以看出,整个文档是由一系列节点对象所组成的一棵树,节点(Node)包括元素节点(1表示)、属性节点(2表示)和文本节点(3表示)。

以下例子均以此表格为例说明:

  1. <body>
  2. <table border="1">
  3. <caption>H5-17-03班花名册</caption>
  4. <thead>
  5. <tr>
  6. <th>姓名</th>
  7. <th id="sex" name="sex">性别</th>
  8. <th>电话</th>
  9. </tr>
  10. </thead>
  11. <tbody>
  12. <tr>
  13. <td>张三</td>
  14. <td></td>
  15. <td>15265984450</td>
  16. </tr>
  17. <tr>
  18. <td>李四</td>
  19. <td></td>
  20. <td>18270258897</td>
  21. </tr>
  22. <tr>
  23. <td>小明</td>
  24. <td></td>
  25. <td>15687925653</td>
  26. </tr>
  27. </tbody>
  28. <tfoot>
  29. </tfoot>
  30. </table>
  31. </body>

获取元素节点

  1. window.οnlοad=function () {
  2. var sex=document.getElementById('sex');
  3. alert(sex.nodeType);
  4. alert(sex.nodeName);
  5. alert(sex.nodeValue)
  6. }

sex代表一个元素节点(nodeType=1),nodeName就是节点标签名(th),元素节点的nodeValue=null;

获取属性节点

  1. var attr=sex.getAttributeNode('name'); //获取属性节点
  2. alert(attr.nodeType);
  3. alert(attr.nodeName);
  4. alert(attr.nodeValue);

getAttributeNode方法是获取元素的属性节点,此时输出的节点类型为属性节点(2),节点名就是属性名(name),节点值就是属性值(sex).

获取文本节点

  1. var text=sex.firstChild; //获取文本节点
  2. alert(text.nodeType);
  3. alert(text.nodeName);
  4. alert(text.nodeValue);

text是一个文本节点(3),节点名称固定是#text,节点值就是文本内容。

JavaScript获取DOM元素方法

(1)getElementById(“id”):根据元素的ID属性来获取元素,获取到的是单独的一个元素。

(2)getElementsByTagName(“标签名”):根据标签名来获取元素,获取到的是一个元素的集合,也可看成一个数组,里面是若干个相同的标签元素,若想通过此方法获取到某个单独的标签元素,需在后面注明下标,下标从0开始,也即是第一个元素。此方法获取元素是按从上到下依次获取,形成一个集合。

实例:

  1. <script>
  2. window.οnlοad=function () {
  3. var input=document.getElementsByTagName('input'); //此时获取到的是页面中所有的input标签元素。
  4. var psd=document.getElementsByTagName('input')[2]; //此时获取到的是集合里面的第三个input标签。
  5. }
  6. </script>
  7. </head>
  8. <body>
  9. <input >
  10. <input type="checkbox">
  11. <input type="password">
  12. <input type="radio">
  13. <input type="range">
  14. </body>

(3)getElementsByClassName(“类名”):此方法根据class属性名来获取元素,跟Tagname一样,它获取到的也是一个元素的集合,需具体获取某个元素,在后面加上下标即可。

(4)getElementsByName(“name名称”):此方法根据name属性名来获取元素,获取到的也是一个元素的集合,获取单个元素方法同上。

JavaScript修改DOM元素

(1)修改内容:通过innerText或者innerHTML方法可以修改元素内容,但是两者是有区别的。

innerHTML会按照HTML的规则去解析文本内容,而innerText只是当做文本处理。

  1. <script>
  2. window.οnlοad=function ( ) {
  3. var p=document.getElementsByTagName('p')[0];
  4. var btn=document.getElementsByTagName('button')[0];
  5. btn.οnclick=function () {
  6. p.innerText='我是修改后的内容'
  7. }
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. <p>我是之前的内容</p>
  13. <button>click me</button>
  14. </body>

(2)修改样式:

①获取到的元素.style.样式名称=值

②通过修改元素的类名来修改样式。

实例:

  1. <style>
  2. .p1{
  3. color:red;
  4. }
  5. .p2{
  6. color:blue;
  7. }
  8. </style>
  9. <script>
  10. window.οnlοad=function () {
  11. var p=document.getElementsByTagName('p')[0];
  12. var btn=document.getElementsByTagName('button')[0];
  13. btn.οnclick=function () {
  14. p.className='p2'; //修改元素p的class类名为p2,p2的样式已经事先定义好了
  15. }
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <p class="p1">测试文本</p>
  21. <button>click me</button>
  22. </body>

②方法比①方法更实用,因为当要修改多个样式的时候,①方法要写很多代码,而②方法一句话就够了,因为类名里可以定义若干种样式。

发表评论

表情:
评论列表 (有 0 条评论,705人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaScript HTML DOM

    本博客转载: [点击这里][Link 1] HTML DOM(文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Mode

    相关 JavaScript HTML DOM

    通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素 HTML DOM(文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型