一.value属性:
  input ,select 标签 ,textarea 标签中有value属性,

  获取他们属性值的方法,先获取该元素ele,然后ele.value得到value值。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--input ,select ,textarea 有vaule 属性-->
<script>
window.onload =function (ev) {
var user = document.getElementById("user");
//鼠标失去焦点时触发
user.onblur = function (ev2) {
console.log(user.value);
// 获取select标签中的value属性值 var sel_value = document.getElementById("sel").value;
//获取textarea 标签中的value属性值
var tex_value = document.getElementById("tex").value;
console.log(sel_value);
console.log(tex_value); }; }
</script> <form action="">
<div>
姓名:
<label for="user"></label>
<input type="text" name="usr" id="user">
</div> <select name="op" id="sel">
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
</select> <div>
<textarea name="" id="tex" cols="30" rows="10"> </textarea>
</div> </form>
</body>
</html>

二.js事件:
  onblur:鼠标失去焦点时触发
  onfocus:鼠标获得焦点时触发
  onshbmit :form表单数据提交时,先触发该事件再提交
  onselect:被选中时,触发的事件
  onchange:改变时触发

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <div class="box">
<img src="default.jpg" alt="" width="100px" height="100px" >
<input type="file" id="file">
</div>
<script> var f1 = document.getElementById("file");
var img = document.getElementsByTagName("img")[0];
f1.onchange=function (ev) {
//1.获取用户选中的文件
var file_obj = f1.files[0];
//2.找到该文件的路径
//创建一个文件阅读阅读器
var reader = new FileReader();
//读该文件对象
reader.readAsDataURL(file_obj);
//等待文件阅读器加载完成
reader.onload =function (ev2) {
//3.将图片地址赋值给src
img.src =reader.result;
} } </script>
</body>
</html>

onchange事件和头像上传

三.节点的增删改替换:

  1.创建节点:

    var ele = document.createElement(节点名)

    父节点.appendChild(ele)

  2.删除节点

    父节点.removeChild(节点)

  3.替换节点   

   父节点.replaceChild(新节点,旧节点)

    

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="p1">
<h3 class="title">WELCOME!</h3>
</div>
<hr>
<div class="c1">
<div><button class="add">一 展示图片</button></div> </div>
<hr>
<div class="c2">
<button class="rem">删除节点 </button>
<h4>欢迎删除,圣诞快乐!</h4>
</div>
<hr>
<div class="c3">
<button class="replace">替换节点 </button>
</div> <script>
// 1 创建节点添加节点
var add =document.getElementsByClassName("add")[0]; var c1 =document.getElementsByClassName("c1")[0];
var img = document.createElement("img");//把创建的节点放在点击事件外面,效果是只创建一张图片
// img.setAttribute("src","高圆圆.jpg");
img.src="高圆圆.jpg";
add.onclick=function () {
c1.appendChild(img);
}; // 2 删除节点 父节点.removeChild(删除节点),删除节点的思路为,先找到父节点,再删除需要删除的子节点
var c2 =document.getElementsByClassName("c2")[0];
var button =document.getElementsByClassName("rem")[0];
button.onclick =function () {
c2.removeChild(this.nextElementSibling);//删除下个兄弟节点
}; // 替换节点 父节点.replaceChild(新节点,旧节点) //需要替换的换的节点
var h3 =document.getElementsByClassName("title")[0];
//父节点
var p1 =document.getElementsByClassName("p1")[0];
//获取点击事件标签
var rep =document.getElementsByClassName("replace")[0];
rep.onclick =function () {
//创建一个新的节点
var p =document.createElement("p");
p.innerText = "到深圳就是深圳人!";
p1.replaceChild(p,h3);
} </script> </body>
</html>

四.二级联动:
  实例场景:两个select的标签中,省份对应地区。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <select name="" id="sel1">
<option value="0">请选择省份</option>
<option value="1">上海</option>
<option value="2">深圳</option>
<option value="3">广州</option>
</select> <select name="" id="sel2">
<option value="0">请选择地区</option> </select> <script>
var sel1 = document.getElementById("sel1");
var sel2 = document.getElementById("sel2");
var data ={
"1":["徐汇区","浦东新区","黄埔区"],
"2":["南山区","龙华区","罗湖区"],
"3":["天河区","海珠区","番禺区"]
};
//sel1改变时触发事件
sel1.onchange =function (ev) {
//先将sel2中的option标签去掉,留下第一个
sel2.options.length =1;
//接着将在sel1标签中增加option标签,第一步创建标签,第二部循环添加标签
//创建标签 var key = this.value;
for (var i=0;i<data[key].length;i++){
var option =document.createElement("option");
option.innerText =data[key][i];
option.value =i+1;
sel2.appendChild(option); }
}; </script>
</body>
</html>

 五.实例:tab栏     (对应关系的切换  li  ===> div)

  两点:

    1.被点击的 li北京变红色,其他 li变白色   。

    2.被点击的 li 对应的div显示,其他 li 对应的div隐藏。

  两层循环解决问题

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
padding: 0;
margin: 0;
} ul,li{
list-style: none;
}
a{
text-decoration: none;
}
.bar{
width: 60%;
height: 40px;
border: 1px solid red;
}
.bar .list{
text-align: center;
height: 40px;
line-height: 40px;
}
.bar .list li{
float: left;
width: 106px;
height: 40px;
text-align: center;
border: 1px solid pink;
cursor: pointer; }
.bar .list li :hover{
color: red;
} .bar .list .li2{
width: 120px;
}
.bar .list .li4{
width: 156px;
}
.bar .list a{
display: inline-block;
height: 40px;
width: 104px;
border: 1px solid green;
float: right;
margin-right: 10px;
color: #333333; }
.item{
width: 60%;
height: 400px;
border: 1px solid red;
}
.hide{
display: none;
}
.show{
display: block;
} </style>
</head>
<body>
<!--https://item.jd.com/7512626.html-->
<div class="bar">
<ul class="list">
<li class="li li1 " >商品介绍</li>
<li class="li li2" >规格与包装</li>
<li class="li li3" >售后保障</li>
<li class="li li4" >商品评价(10万+)</li>
<li class="li li5" >社区互动</li>
<a href="#">a加入购物车</a>
</ul>
</div>
<div class="item item1 " >div1</div>
<div class="item item2 hide">div2</div>
<div class="item item3 hide">div3</div>
<div class="item item4 hide">div4</div>
<div class="item item5 hide">div5</div> <script>
var lis =document.getElementsByClassName("li"); var items =document.getElementsByClassName("item"); for(i=0;i<lis.length;i++){ lis[i].onclick =function () {
//被点击的li背景色变成红色,其他变成白色,两层循环实现
this.style.backgroundColor="red"; // items[i].classList.remove("hide");//这句不能放上面,因为i加载完页面后i变成了5;每次点击页面i都是为固定值
for (var j=0;j<lis.length;j++){
if (lis[j] !==this){
lis[j].style.backgroundColor="white";
items[j].classList.add("hide"); }else {
items[j].classList.remove("hide");
} }
//被点击的li对应的div显示出来,其他li对应的div隐藏 }
} </script> </body>
</html>

49 DOM(2)的更多相关文章

  1. DOM(二)使用DOM

    在了解DOM(文本对象模型)的框架和节点后,最重要的是使用这些节点处理html网页 对于一个DOM节点node,都有一系列的属性和方法可以使用.常用的有下表. 完善:http://www.w3scho ...

  2. 一步一步带你实现virtual dom(一)

    一步一步带你实现virtual dom(一) 一步一步带你实现virtual dom(二)--Props和事件 要写你自己的虚拟DOM,有两件事你必须知道.你甚至都不用翻看React的源代码,或者其他 ...

  3. 8.6 JavaScript之HTML的DOM(三)

    8.5 HTML和JavaScript的DOM(三) 一.DOM 是Document Object Model( 文档对象模型 )的缩写. DOM把所有的html都转换为节点 .整个文档 是一个节点 ...

  4. JS之DOM(一)

    一.DOM简介 什么是DOM?简单地说,DOM是是针对HTML和XML文档的一个API,一套对文档的内容进行抽象和概念化的方法. 学习过ORM的同学可能知道ORM是将数据库中的表映射到类,建立一个表和 ...

  5. DOM(四)事件流

    1.冒泡型事件 浏览器的事件模型分两种:捕获型事件和冒泡型事件.由于ie不支持捕获型事件,所以以下主要以冒泡型事件作为讲解.(dubbed bubbling)冒泡型指事件安装最特定的事件到最不特定的事 ...

  6. DOM(五)事件对象

    浏览器中的事件都是以对象的形式存在的,同样ie浏览器与标准dom浏览器之间存在获取事件对象上也存在差别.在ie浏览器中事件对象是windows对象的一个属性event,访问通常采用如下方法. oP.o ...

  7. JS之DOM(二)

    一.DOM节点的操作 1.增加: (1). document.creatElement('标签名');创建元素节点 (2). document.creatTextNode('文本内容'):创建文本节点 ...

  8. 《JavaScript 闯关记》之 DOM(下)

    Element 类型 除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了.Element 类型用于表现 XML 或 HTML 元素,提供了对元素标签名.子节点 ...

  9. 《JavaScript 闯关记》之 DOM(上)

    DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API.DOM 描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分. 节点层次 DOM 可以将任何 HTML 或 XM ...

随机推荐

  1. emoj表情过滤

    用法:  isEmojiCharacter(input_value)   //  提交时候校验.true:emoj表情   undefined:无   if(isEmojiCharacter(val) ...

  2. 20165207 Exp4 恶意代码分析

    目录 1.实验内容 1.1.系统运行监控 1.1.1.使用命令行创建计划任务 1.1.2.使用命令行借助批处理文件创建计划任务 1.1.3.分析netstat计划任务的最终结果 1.1.4.安装配置s ...

  3. Linux基础命令---bunzip2

    bunzip2 解压缩bzip2压缩过的文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法       bunzip2  ...

  4. sqlserver 判断各种不存在

    判断数据库是否存在 if exists (select * from dbo.sysobjects where name = '数据库名') --drop database [数据库名] 判断表是否存 ...

  5. 01: MySql简介

    MySQL其他篇 目录: 参考网站 1.1 数据库介绍 1.2 视图 1.3 触发器 1.4 事物 1.1 数据库介绍返回顶部 1.什么是数据库? 1. 数据库(Database)是按照数据结构来组织 ...

  6. Linux(RedHat) 开机时修改root密码

    全程上图 开机的时候看到以下的界面, 按e进入编辑界面 然后就看到这个 再按一下e, 选择第二项 选中第二项后按e进入编辑界面, 输入single(记得有空格),然后回车, single就是启动单用户 ...

  7. Android实践项目汇报(总结)-修改

    天气客户端开发报告 1系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还可以提示 ...

  8. bzoj 1096 仓库建设 -斜率优化

    L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天,L公司的总裁L先生接到气 ...

  9. 关于fragment点击穿透的问题

    当一个activity有多个fragment的时候,点击当前显示的fragment,如果点击处在其他fragment中也有相应的控件,那么可能会点击穿透,有响应另外fragment事件的趋势.但是这个 ...

  10. P3466 [POI2008]KLO-Building blocks

    目录 题目 思路 错误 代码 题目 luogu csdn好像限制了展开博客次数,真的好xx 思路 显然一段区间内的值一定是他的中位数 少一点比多一点好 然后就可以枚举区间了 区间答案为 val[mid ...