一.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. js dom 操作技巧

    1.创建元素 创建元素:document.createElement() 使用document.createElement()可以创建新元素.这个方法只接受一个参数,即要创建元素的标签名.这个标签名在 ...

  2. Linux配置自动时间同步

    Linux配置自动时间同步时间同步命令:ntpdate -s time.windows.com自动时间同步:让linux从time.windows.com自动同步时间vi /etc/crontab加上 ...

  3. 使用liner、feather、multiband对已经拼接的数据进行融合

    所谓"blend",英文解释为“vt. 混合vi. 混合:协调n. 混合:掺合物”这里应该理解为是图像数据的融合.这是“识别->对准->融合”的最后一步.融合是决定拼接 ...

  4. 20144303石宇森《网络对抗》MSF基础应用

    20144303石宇森<网络对抗>MSF基础应用 实验后回答问题 一.解释什么是exploit,payload,encode: 我认为exploit就是一个简单的攻击指令,就是对配置所有设 ...

  5. 通过例子来理解python闭包。

    闭包:就是内部函数对enclosing作用域的变量进行引用.(可先参考python函数作用域LEGB) 通过一个例子体会 def func_150(val): passline = 90 if val ...

  6. bzero, memset ,setmem 区别【转】

    本文转载自:http://chang6520.blog.163.com/blog/static/112665875201302843359715/ bzero 原型: extern void bzer ...

  7. linux下如何查看当前机器提供了哪些服务

    答:使用netstat工具 在命令行下输入netstat -atun即可列出当前机器提供的服务 netstat各选项解析: -a 列出所有服务 -t 列出tcp相关 -u 列出udp相关 -n 以数字 ...

  8. Wireshark 显示域名列

    一般使用Wireshark只能看到ip地址,但是看域名更方便更简明 只要修改一个配置就可以 编辑-->首选项 勾选Resolve network(IP) addresses 重新捕捉:

  9. TeeChart取消3D

    tChart1.Aspect.View3D = false;//此属性默认是true 3d的效果 2d平面的效果 题外话,在使用控件的时候,需要注意: 在TChart控件上增加Series,   se ...

  10. 【Android实验】第一个Android程序与Activity生命周期

    目录 第一个Android程序和Activity生命周期 实验目的 实验要求 实验过程 1. 程序正常启动与关闭 2. 外来电话接入的情况 3. 外来短信接入的情况 4. 程序运行中切换到其他程序(比 ...