我的DOM学习(一)

web API 编程

一、 API与WEB API区别

1.API是工具,应用程序编程接口
WEB API 是接口,针对浏览器的API,用于做交互效果,一般都有输入输出,很多都是方法和函数

二、DOM

1. DOM简介

  • DOM树

  • 文档:页面为文档,document

  • 元素:所有标签为元素,element

  • 节点:页面所有内容都是节点,node

2.获取元素

  • 1 根据ID获取
<div id="content">isjv</div>

<script >
//get获得 element 元素by 通过 驼峰命名法
//id 是大小写敏感字符串
  var contentInput=document.getElementById('content');
  console.log(contentInput);//
//打印我们返回的元素对象,更好的查看属性和方法
console.dir(content);
</script>

在这里插入图片描述

  • 2 根据标签名获取:返回带有标签名对象的集合
<ul>
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>1</li>
   <li>4</li>
</ul>

<script >
var lis= document.getElementsByTagName('li');
//返回的是以伪数组的形式存储的元素对象的集合
console.log(lis);
console.log(lis[0]);
//遍历打印
for (var i = 0; i <lis.length; i++) {
   console.log(lis[i]);
}
</script>

注:得到的元素是动态
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
得到元素里面的某些标签

<ul id="nav">
	<li>1</li>
	<li>2</li>
	<li>3</li>
	<li>1</li>
	<li>4</li>
</ul>

<script >
//element.getElementsByTagName( ); 得到元素里面的某些标签
var ulInput= document.getElementById('nav');
var lis = ulInput.getElementsByTagName('li');
console.log(lis);
</script>

在这里插入图片描述

  • 3通过类名获取元素
<div class="box"></div>
<div class="box"></div>
<script >
//根据类名获取某些元素的集合
var boxs= document.getElementsByClassName('box');
console.log(boxs);

在这里插入图片描述

  • 4通用选择器获取元素
<div class="box"></div>
<div class="box"></div>
<script >
//返回第一个,选择器加符号:.代表类,#代表id,标签不用加
var boxs= document.querySelector('.box');
console.log(boxs);
//选择所有
var boxs= document.querySelectorAll('.box');
console.log(boxs);
</script>

在这里插入图片描述

  • 5获取特殊元素 body、html
<script >
//获取body元素
var bodyEle = document.body;
console.log(bodyEle);
//获取html元素
var htmls= document.documentElement;
console.log(htmls);
</script>

在这里插入图片描述

三、事件基础

  1. 事件基础:触发响应的机制
  2. 三要素
<button id="btn">按钮</button>
<script >
//事件有三部分组成:事件源,事件类型,事件处理程序
//事件源:被触发的对象 按钮
var btn=document.getElementById('btn');
//事件类型  鼠标点击onclick
//事件处理程序 通过函数赋值方式完成
btn.onclick = function () {
	alert('点秋香');
}
</script>

在这里插入图片描述
在这里插入图片描述
3. 常见鼠标事件
在这里插入图片描述

四、操作元素

  1. 改变元素内容
  • innerText
<body> 
<button id="btn">显示时间</button>
<div>good!</div>
<script >
//事件有三部分组成:事件源,事件类型,事件处理程序
//事件源:被触发的对象 按钮
var btn=document.getElementById('btn');
var divs=document.querySelector('div');
//事件类型  鼠标点击onclick
//事件处理程序 通过函数赋值方式完成
btn.onclick = function () {
  divs.innerText=getTime();
}
//获取当今时间的函数
function getTime(){
  //时间函数
  var date =new Date();
  var year=date.getFullYear();
  var month = date.getMonth()+1;
  var dates = date.getDate();
  var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
  var day=date.getDay();
  return '今天是:'+year+'年'+month+'月'+dates+'日'+arr[day];
}
</script>


改变前
在这里插入图片描述

改变后
在这里插入图片描述
注:元素不用添加事件~~如点击~~ 也可以显示时间

<button id="btn">显示时间</button>
<div>good!</div>
<p></p>
<script >
var divs=document.querySelector('div');
//在div下面新加一个p标签
var p =document.querySelector('p');
p.innerText=getTime();
//获取当今时间的函数
function getTime(){
	//时间函数
	var date =new Date();
	var year=date.getFullYear();
	var month = date.getMonth()+1;
	var dates = date.getDate();
	var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
	var day=date.getDay();
	return '今天是:'+year+'年'+month+'月'+dates+'日'+arr[day];
}
</script>

在这里插入图片描述

  • innerHTML
    innerText不识别html标签。innerhtml 识别html标签,保留空格和换行,推荐使用
  1. 常用元素的属性操作(src,href,id,alt,title)

举例:点击不同按钮显示不同照片,修改img的src属性

<button id="zly">赵丽颖</button>
<button id="fjj">风景</button><br>
<img src="1.png" alt="" title="赵丽颖">
<script >
var zlys = document.getElementById('zly');
var fj = document.getElementById('fjj');
var img = document.querySelector('img');
zlys.onclick= function(){
	img.src='1.png';
	img.title='赵丽颖';
} 

fj.onclick= function(){
	img.src="2.png";
	img.title='风景';
} 
</script>

  1. 表单元素的属性操作(type、value、checked、selected、disabled)
<button>按钮</button>
<input type="text" value="请输入内容">
<script>
var btn= document.querySelector('button');
var input=document.querySelector('input');
btn.onclick=function () {
	input.value='点击了';
	//点击了之后被禁用disabled,
	//btn.disabld='true';
	//this指的是事件函数的调用者  btn
	//改成false,又可以重新被点击
	this.disabled=true;

}

在这里插入图片描述

  1. 案例分析
    (1)案例一
    举例:点击按钮,可以显示密码,再点击一次,密码就看不见了
    思路:利用flag变量,当为1是变为文本框,同时flag赋值为0;当为0是变为密码框,同时flag赋值为1。
<script>
var btn= document.querySelector('button');
var pwd=document.querySelector('pwd');
btn.onclick=function () {
   if (flag==1) {
   	pwd.type='text';
   	flag=1;
   }else{
   	pwd.type='password';
   	flag=0;
   }
}
</script>

(2)案例二
举例:点击按钮可以关闭图片,再次刷新,图片显示
思路:利用display.none 隐藏元素;display.block 显示元素

<div class="box">
<button>按钮</button>
<img src="1.png" alt="">
</div>
<script>
var btn= document.querySelector('button');
var box=document.querySelector('.box');
btn.onclick=function () {
	 box.style.display='none';
}

(3)案例三
举例:循环精灵背景
思路:循环

<ul>
<li>..</li>
<li>..</li>
<li>..</li>
</ul>
<script>

var lis=document.querySelectorAll('li');
for (var i = 0; i <lis.length; i++) {
	//图片与图片之间的距离
	var index= i*44;
	//x坐标 y坐标
	lis[i].style.backgroundPosition='0-'+index+'px';
}
</script>

在这里插入图片描述
(4)案例四
举例:当鼠标点击文本框时,里面的文字隐藏,当鼠标离开文本框时,里面的文字显示
思路:获得焦点 onfocus ,失去焦点 onblur

<input type="text" value="手机">

<script>

var input=document.querySelector('input');
//得到焦点
input.onfocus=function(){
	if (this.value==='手机') {
			this.value='';	
		}
}
//失去焦点
input.onblur=function(){
	if (this.value==='') {
			this.value='手机';	
		}
}
</script>

  1. 样式的属性操作
    (1)element.style
    (2)element.ClassName 类名样式操作

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值