DOM文档对象模型

DOM树

在这里插入图片描述

Dom节点操作

1.获取dom节点对象

原生js指的是不使用任何框架或者js库,只使用js原本提供的功能
1.使用原生js获取js节点对象
2.使用jq获取dom节点对象
3.原生jsdom节点对象和jq对象互相转换
4.jquery对象的一些方向
1.获取节点
原生js:
(1).document.querySeletor();//略
(2).document.querySeletorAll();//略
(3).document.getElementById();

<div id='box'></div>
<script>
var box=document.getElementById('box');
</script>

jQuery获取dom节点对象

<div id='box'></div>
<script>
var box=$('#box');
</script>

原生js dom节点对象和jQuery节点对象互转
//只有jQuery对象才可以使用jQuery提供的方法,所以有些时候需要将原生js dom 对象装换为jQuery dom对象
1.原生转jq:${原生dom节点对象}
2.jq转原生 jq对象[0]

<div class='box'>dom</div>
<script>
//dom节点对象
var box=document.querySelector(".box");
//jq对象
var $box=$('.box');
//dom对象转jq对象
$(box)---->$(box)
//jq对象转dom对象
$(box)[0]-->box
</script>

jquery对象相关方法
1.获取元素的兄弟节点(siblings())

<div></div>
<p></p>
<script>
	var $div=$('p').siblings('div');//div
</script>

2.获取元素的父节点(parent)

<div class='box'>
<div class='item'></div>
</div>
<script>
	var $box=$('.item').parent('.box')//box
</script>

3.获取元素的在兄弟元素中的排列位置(index)

<ul>
	<li></li>
</ul>
<script>
	var $li=$('li').index();//0
</script>

4.查找元素中的后代某个节点 (用find)

<ul>
	<li class='item'><span></span></li>
</ul>
<script>
	var $span=$(ul).find('span');//span
</script>

2.获取和修改dom节点内容
//原生dom节点获取内容(略)//修改内容lue
//jQuery获取和修改内容
1.html()//获取的是元素的内容(包括标签)

<div class='box'>
	<div>我是子盒子</div>
</div>
<script>
	$('.box').html()//<div>我是子盒子</div>
</script>

2.text()//获取的是元素的内容(不包括标签)

<div class='box'>
	<div>我是子盒子</div>
</div>
<script>
	$('.box').html()//我是子盒子
</script>

3.val()//获取的是输入框中的值
3.获取和修改dom节点属性
4.获取和修改dim节点样式

获取和修改dom节点的属性
//原生获取属性

<div class="box">
      <div>我是子盒子</div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
      var box=document.querySelector('.box');
      var index=box.getAttribute('class');//得到class属性值
      // box.setAttribute()//设置属性
    </script>

//jq获取属性值

<div class="box">
      <div>我是子盒子</div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
      var $index=$('.box').attr('class');//得到class属性值
      //我们一般获取和修改属性值使用的是attr,但是当attr不好使的时候,用prop
    </script>
  

4.获取和修改元素的样式
//注意:在原生js中,元素.style样式名称操作行内样式,非行内样式需要使用window.getComputedStyle来操作//原生js修改节点样式(略)
(2).jq获取和修改节点样式

<div>1.xxxxxx</div>
<script>
	var $div=$('div').css('color');//获取的是div字体的颜色
</script>

DOM节点增删
原生jsDOM节点的增删

<ul>
      <li>1.xxxx</li>
      <li>2.xxxx</li>
    </ul>
    <script>
      var ul=document.querySelector('ul');
      var li=document.createElement('li');
      li.innerText='我是新的文本';
      ul.appendChild(li);//添加新的DOM元素

      var li1=document.querySelector("ul>li:nth-child(2)");
      li1.remove();//删除DOM元素
    </script>

用jq来进行DOM的增删

  <ul>
      <li>1.xxxx</li>
      <li>2.xxxx</li>
    </ul>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
     var $li=`<li>我是新的文本</li>`
     $('ul').append($li);//添加新的DOM元素
     $('li:nth-child(1)').remove();//删除DOM元素
    </script>

DOM事件分类

1.DOM 0级事件
行内事件.在标签中写事件
元素对象.on事件名=事件处理函数

<button onclick='alert(222)'>点击</button>

注意:jq事件绑定函数(属于二级事件)
其中jq事件提供了this指向,谁调用了这个函数,this指向谁

<button>点击我</button>
<script>
	button.click(function(){alert(2222);})
	button.on('click',function(){alert(2222);})
</script>

2.DOM 1级问题 DOM级别1于1998年10月1日成为 W3c推荐标准。
3.DOM 2及事件
监听方法:有两种方法来添加和移除处理程序
1.原生js方面:addEventListener()和removeEventListener().其中可传三个参数,第一个参数是你的事件名,第二个参数是你的事件函数,第三个参数是true或则false,如果为true表示在捕获阶段调用,false表示在冒泡阶段调用.
注意:0级事件只能添加1个事件处理函数
不能移除匿名添加的函数。

<div class='arr'>我是一个简单的div</div>
<script>
var arr=document.querySelector('.arr');
arr.addListener('click',function(){alert(222)})
arr.addListener('click',function(){alert('ewwq')})
</script>

4.Dom 3级事件

html5新事件api,拖拽,视频放播等
触碰事件touchstart、touchmove和touchend
自定义事件
拖拽例子
1.对需要拖拽的容器添加属性draggable-‘true’
2.对目标容器添加dragover事件,目的是阻止默认事件
3.对目标容器添加drop事件,执行元素的移动操作

<style>
      .box{
        width: 400px;
        height: 400px;
        border: 1px solid;
      }
      .item{
        width: 200px;
        height: 200px;
        background-color: red;
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
    <div class="item" draggable="true"></div>
    <script>
      var item=document.querySelector('.item');
      var box=document.querySelector('.box');
      box.addEventListener('dragover',function(even){
        even.preventDefault();
      })
      box.addEventListener('drop',function(){
        this.appendChild(item);
      })
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值