JavaScript 操作HTML DOM元素

DOM概念

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

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


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

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

<body>
<table border="1">
   <caption>H5-17-03班花名册</caption>
   <thead>
   <tr>
      <th>姓名</th>
      <th id="sex" name="sex">性别</th>
      <th>电话</th>
   </tr>
   </thead>
   <tbody>
   <tr>
      <td>张三</td>
      <td>男</td>
      <td>15265984450</td>
   </tr>
   <tr>
      <td>李四</td>
      <td>女</td>
      <td>18270258897</td>
   </tr>
   <tr>
      <td>小明</td>
      <td>男</td>
      <td>15687925653</td>
   </tr>
   </tbody>
   <tfoot>
   </tfoot>
</table>
</body>

获取元素节点

 window.οnlοad=function () {
          var sex=document.getElementById('sex');
          alert(sex.nodeType);
          alert(sex.nodeName);
          alert(sex.nodeValue)
 }

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

获取属性节点

   var attr=sex.getAttributeNode('name'); //获取属性节点
   alert(attr.nodeType);
   alert(attr.nodeName);
   alert(attr.nodeValue);
getAttributeNode方法是获取元素的属性节点,此时输出的节点类型为属性节点(2),节点名就是属性名(name),节点值就是属性值(sex).

获取文本节点

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

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

JavaScript获取DOM元素方法

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

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

实例:

 <script>
      window.οnlοad=function () {
          var input=document.getElementsByTagName('input');  //此时获取到的是页面中所有的input标签元素。
          var psd=document.getElementsByTagName('input')[2]; //此时获取到的是集合里面的第三个input标签。
      }
   </script>
</head>
<body>
<input >
<input type="checkbox">
<input type="password">
<input type="radio">
<input type="range">
</body>
(3)getElementsByClassName("类名"):此方法根据class属性名来获取元素,跟Tagname一样,它获取到的也是一个元素的集合,需具体获取某个元素,在后面加上下标即可。

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

JavaScript修改DOM元素

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

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

<script>
      window.οnlοad=function ( ) {
          var p=document.getElementsByTagName('p')[0];
          var btn=document.getElementsByTagName('button')[0];
          btn.οnclick=function () {
              p.innerText='我是修改后的内容'
          }
      }
</script>
</head>
<body>
<p>我是之前的内容</p>
<button>click me</button>
</body>
(2)修改样式:

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

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

实例:

<style>
      .p1{
         color:red;
      }
      .p2{
         color:blue;
      }
</style>
<script>
      window.οnlοad=function () {
          var p=document.getElementsByTagName('p')[0];
          var btn=document.getElementsByTagName('button')[0];
          btn.οnclick=function () {
              p.className='p2';  //修改元素p的class类名为p2,p2的样式已经事先定义好了
          }
      }
</script>
</head>
<body>
<p class="p1">测试文本</p>
<button>click me</button>
</body>
②方法比①方法更实用,因为当要修改多个样式的时候,①方法要写很多代码,而②方法一句话就够了,因为类名里可以定义若干种样式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废柴前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值