JSAP101

1、DOM

1)文档对象模型





文档:把一个Html文件看成一个文档,所以把这个文档看成一个对象。XML文件也可以看成一个文件。XML侧重于存储数据,html主要以展示为主。一个页面就是一个文档。

页面中的每个标签,都是一个元素,每个元素都可以看成是1个对象。

页面中所有的内容都是节点:标签,属性,文本 。html是文档的根元素。由文档及文档中所有的元素(标签)组成的一个树形结构图脚树状图(DOM树)

DOM是用来操作页面元素的。

2)DOM初体验

<input type="button" value="弹窗" onclick="alert('hello!')"/><!--注意用单引号-->

3、为元素注册事件

1)事件:以on开头

js代码应该和html代码分离

function f1(){
...
}
//可以通过事件调用函数
<input type="button" value="显示效果" onclick="f()"/> //分离js与html,利用id
<input type="button" value="点击" id="btn"/>
<script>
function f(){
alert("分离");
}
//document.getElementById("ids属性名");返回的是一个元素对象
var btnObj=document.getElementById("btn");
//相当于为按钮注册了(点击)事件
btnObj.onclick=f;//不必加括号
</script>

最终的代码,不再在script外定义函数(以下代码均在body标签内):



使用匿名函数

若把input和script标签互换位置,则会报错,因为此时还没有btn这个id的值

//案例:点击按钮显示图片和设置宽高
<body>
<input type="button" value="显示图片" id="btn"/>
<img src="" id="im"/>
<script>
//点击按钮时设置img标签的src属性
//获取按钮
var btnObj=document.getElementById("btn");
btnObj.onclick=function () {
var imObj=document.getElementById("im");
imObj.src="timg.jpg";
//设置图片大小
imObj.width=300;
imObj.height=400;
};
</script>
</body>
//案例:点击按钮设置p标签的文本内容
<body>
<input type="button" value="设置p的内容" id="btn"/>
<p id="p1">这是p标签</p>
<script>
document.getElementById("btn").onclick=function () {
document.getElementById("p1").innerText="我是一个p标签";
}
//案例:点击按钮修改超链接的地址及文本内容
<body>
<input type="button" value="设置p的内容" id="btn"/>
<p id="p1">这是p标签</p>
<script>
document.getElementById("btn").onclick=function () {
document.getElementById("p1").innerText="我是一个p标签";
}
</body>
//案例点击按钮设置所有P标签的内容
<body>
<input type="button" value="显示效果" id="btn"/>
<p>she is young.</p>
<p>she is young.</p>
<p>she is young.</p>
<p>she is young.</p>
<p>she is young.</p>
<script>
document.getElementById("btn").onclick=function(){
//根据标签名字获取标签
var pOBJ=document.getElementsByTagName("p");
console.log(pOBJ);//是一个伪数组
//循环遍历这个伪数组
for(var i=0;i<pOBJ.length;i++){
pOBJ[i].innerText="no way!"; } }
</script>
</body>
//案例:点击按钮修改图片的alt与title属性
<body>
<input type="button" value="显示效果" id="btn"/>
<img src="timg.jpg" alt="cc" title="dd"/>
<script>
document.getElementById("btn").onclick=function(){
//返回的是一个伪数组
var imgObjs=document.getElementsByTagName("img");
imgObjs[0].alt="修改";
imgObjs[0].title="完成";
}
</script>
//案例:点击按钮修改多个文本的值
<body>
<input type="button" value="修改文本框" id="btn"/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<input type="text" value=""/><br/>
<script>
//根据id获取按钮
//为按钮注册点击事件,添加事件处理函数
document.getElementById("btn").onclick=function () {
//获取所有的文本框
var inputs=document.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
//判断这个元素是不是按钮
if(inputs[i].type!="button") {
inputs[i].value="你好";
} } }
</script>
</body>
//案例:点击每个图片弹出对话框
<body>
<img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt="" id="im1"/>
<img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt=""id="im2"/>
<img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt="" id="im3"/>
<script>
var imgObjs=document.getElementsByTagName("img");
//循环遍历
for(var i=0;i<imgObjs.length;i++){
imgObjs[i].onclick=function () {
alert("延禧攻略");
} }
</script> </body>
//点击按钮修改其value属性
<body>
<input type="button" value="按钮" id="btn"/>
<script>
var btnObj=document.getElementById("btn");
btnObj.onclick=function () {
btnObj.value="你好";
}
</script> </body>
案例:点击图片修改其宽高
<body>
<img src="timg.jpg" alt="" id="im"/>
<script>
var imgObj=document.getElementById("im");
imgObj.onclick=function () {
this.width="200";
this.height="700";
}
</script> </body>
案例:按钮的排他功能
<body>
<input type="button" value="吃了吗"/>
<input type="button" value="吃了吗"/>
<input type="button" value="吃了吗"/>
<input type="button" value="吃了吗"/>
<input type="button" value="吃了吗"/>
<script>
//获取所有的按钮
var btnObjs=document.getElementsByTagName("input");
for(var i=0;i<btnObjs.length;i++){
btnObjs[i].onclick=function () {
for(var j=0;j<btnObjs.length;j++){
btnObjs[j].value="吃了吗";
}
this.value="还没有"; }
}
</script> </body>

//for循环在加载页面时就已经完成,而点击事件只在点击时才触发执行。因此上面的this.value不能写成btnObjs[i],因为此时已经循环注册完事件,i=btnObjs.length

//点击图片修改路径
<body>
<a id="ak" href="u=2124789894,3346559232&fm=11&gp=0.jpg"><img id="im" src="timg.jpg"/></a>
<script>
document.getElementById("im").onclick=function () {
this.src=document.getElementById("ak").href;
}
</script> </body>
//点击按钮切换图片
<body>
<input type="button" value="显示大图" id="btn"/>
<img src="u=2124789894,3346559232&fm=11&gp=0.jpg" id="im">
<script>
//通过函数获取对象
function my$(id) {
return document.getElementById(id);
}
my$("btn").onclick=function () {
my$("im").src="timg.jpg";
};
</script> </body>
//点击按钮选择性别和兴趣
//修改兴趣
<body>
<input type="button" value="修改性别" id="btn1"/>
<input type="radio" name="sex" value="1" id="rad1"/>male
<input type="radio" name="sex" value="2"/>female
<input type="radio" name="sex" value="3"/>secret <script>
function my$(id) {
return document.getElementById(id);
}
//规律:在表单标签中,如果属性和值只有一个,并且是这个属性本身,那么
//在写js代码时,进行DOM操作的时候,这个属性值,是布尔类型就可以了
my$("btn1").onclick=function(){
my$("rad1").checked=true;//不用checked,只用false,true
}; </script>
<br />
<input type="button" value="修改兴趣" id="btn2">
<input type="checkbox" value="1" name="hobby" id="ck1"/>游戏
<input type="checkbox" value="2" name="hobby"/>睡眠
<script>
my$("btn2").onclick=function () {
my$("ck1").checked=true;
}
</script>
</body>
案例选择下拉框和文本域的相关属性
<body>
<input type="button" value="点菜" id="btn"/>
<select>
<option value="1">炸鸡蛋</option>
<option value="2">龙虾饭</option>
<option value="3" id="op1">凉拌鸡肉</option>
<option value="4">西式炖菜</option>
</select>
<!--<script src="xx.js"></script>可引用js文件-->
<script>
function my$(id) {
return document.getElementById(id);
} my$("btn").onclick=function () {
//点击按钮选择菜
my$("op1").selected=true;
};
</script> <textarea name="" id="tt" cols="30" rows="10" readonly="readonly">
今天半价吃寿司。有鸭胸芝士,鳗鱼蒸饭。
</textarea>
<input type="button" value="注册" id="btn2">
<script>
//disabled--这个属性是禁用的意思
//html中属性和值是自身的,且只有一个的,可以只写这个属性,不用赋值
my$("btn2").onclick=function () {
my$("tt").value="太美味了,下次尝尝炸鸡饭";
} </script>
</body>
案例:点击按钮设置div样式
<body>
<input type="button" value="设置样式" id="btn"/>
<div id="dv"></div>
<script>
//凡是css属性中多个单词的写法,在js代码中
//DOM操作时,有分号的属性不用写分号,改为首字母大写
function my$(id) {
return document.getElementById("id")
}
my$("btn").onclick=function () {
my$("dv").style.width="300px";
my$("dv").style.width="200px";
my$("dv").style.backgroundColor="red";
};
</script>
</body>
//案例:点击按钮显示和隐藏
<input type="button" value="hide" id="btn"/>
<input type="button" value="display" id="btn2"/>
<div id="dv">
</div>
<script>
function my$(id) {
return document.getElementById(id)
} my$("btn").onclick = function () {
my$("dv").style.display = "none";
}
my$("btn2").onclick = function () {
my$("dv").style.display = "block";
}
</script>
div的显示和隐藏通过类样式实现
<body>
<input type="button" value="设置样式" id="btn"/>
<div id="dv">
</div>
<script>
function my$(id) {
return document.getElementById(id)
}
my$("btn").onclick=function () {
//在js代码中DOM操作时,设置元素的类样式,不用class
//关键字,应该使用className
my$("dv").className="cls";
}
</script>
</body>
//案例:网页开关灯
<head>
<meta charset="UTF-8">
<title>abc</title>
<style>
.cls {
background-color: black;
}
</style>
</head>
<body>
<input id="btn" type="button" value="light">
<script>
function my$(id) {
return document.getElementById(id)
} my$("btn").onclick = function () {//获取body标签
document.body.className = document.body.className != "cls" ? "cls" : "";
};
</script>
</body>
</html>

JSAP101的更多相关文章

随机推荐

  1. windows下面使用nssm设置新的服务实现开机自启等

    1.下载: http://nssm.cc/download/?page=download 2.解压: 根据自己的系统选择相应的32bit或者64bit,然后将相应的可执行文件拷贝到系统环境中.配置环境 ...

  2. CentOS7下Django环境的搭建安装python3.6.5,virtualenv django1.11.14

    1.帖子1https://blog.csdn.net/a249900679/article/details/51527200 2.virtualenv https://www.cnblogs.com/ ...

  3. Zabbix微信报警触发

    (1)         企业应用-创建应用 1.除了对个人添加微信报警之外,还可以添加不同管理组,接受同一个应用推送的消息, 成员账号,组织部门ID,应用Agent ID,CorpID和Secret, ...

  4. liunx系统虚拟机下安装tomcat9以及访问tomcat案例

    在liunx系统虚拟机下安装tomcat9 首先下载好压缩包 liunx系统环境的安装包 将其解压到虚拟机自己创建的目录下 解压命令   tar -zxvf   文件名 解压好如图所示 然后修改配置文 ...

  5. 006 numpy常用函数

    属于Numpy的函数. 一:通用函数 1.说明 是一种对ndarray中的数据执行元素级运算的函数. 2.一元函数 3.二元函数 二:矢量计算 1.numpy.where 主要有两种用法 np.whe ...

  6. day 69 orm操作之表关系,多对多,多对一(wusir总结官网的API)

    对象  关系  模型 wusir博客地址orm官网API总结 django官网orm-API orm概要: ORM 跨表查询 class Book(models.Model): title = mod ...

  7. burpsuite https证书设置

    java更新.burpsuite换来换去,chrome的证书似乎失效了.重新来一边证书导入,有一些导入方法确实坑. 尝试了直接导入到受信任的机构是无效的. 两年前就因为导入到受信任的机构,又找不到导入 ...

  8. 基于netty的websocket例子

    nettyServer package com.atguigu.netty.websocket; import javax.annotation.PostConstruct; import org.s ...

  9. hadoop离线计算项目上线配置问题记录

    最近上线一个hadoop离线处理项目,因为在低配置(8G,4核)的时候装的CDH,后来集群配置(64G,16核)上来了,但许多参数不会自动修改,需要自己调整,处理过程中遇到的配置问题记录下. 1.hi ...

  10. Java内存管理-你真的理解Java中的数据类型吗(十)

    勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 作为Java程序员,Java 的数据类型这个是一定要知道的! 但是不管是那种数据类型最 ...