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>
三、事件基础
- 事件基础:触发响应的机制
- 三要素
<button id="btn">按钮</button>
<script >
//事件有三部分组成:事件源,事件类型,事件处理程序
//事件源:被触发的对象 按钮
var btn=document.getElementById('btn');
//事件类型 鼠标点击onclick
//事件处理程序 通过函数赋值方式完成
btn.onclick = function () {
alert('点秋香');
}
</script>
3. 常见鼠标事件
四、操作元素
- 改变元素内容
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标签,保留空格和换行,推荐使用
- 常用元素的属性操作(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>
- 表单元素的属性操作(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)案例一
举例:点击按钮,可以显示密码,再点击一次,密码就看不见了
思路:利用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)element.style
(2)element.ClassName 类名样式操作