day 53 js学习之
---恢复内容开始---
1.昨日作业讲解
弄一个上图一样的选择器,可以全选,可以反选,取消
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*table{border: 2px solid black}*/
</style>
<script>
//写一个函数 当触发按钮的时候执行这个函数
function quanxuan(){
//全选,先找出按钮对象
var qelems=document.getElementsByClassName('c1');
//循环取出所有的所有的对象,并将他的checked属性写为true,
for (var i=0;i<qelems.length;i++){
//checked 属性 为true的时候选中,是false时候取消选中
qelems[i].checked=true; }
}
function fanxuan(){
//全选,先找出按钮对象
var qelems=document.getElementsByClassName('c1');
//循环取出所有的所有的对象,并将他的checked属性写为true,
for (var i=0;i<qelems.length;i++){
//checked 属性 为true的时候选中,是false时候取消选中
//在循环中找出属性为true的设置为false 将为false的设置为true
if (qelems[i].checked==true){qelems[i].checked=false;}else
{qelems[i].checked=true;} }
} function quxiao(){
var qelems=document.getElementsByClassName('c1');
//循环取出所有的所有的对象,并将他的checked属性写为false,
for (var i=0;i<qelems.length;i++){
//checked 属性 为true的时候选中,是false时候取消选中
qelems[i].checked=false;
}}
</script> </head>
<body>
<!--table 里边的border是特殊属性,不是style 里的, 不能直接在哪儿设置-->
<table border="8">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td ><input class="c1" type="checkbox" ></td>
<td>alex</td>
<td>18</td>
</tr>
<tr>
<td ><input class="c1" type="checkbox" ></td>
<td>agon</td>
<td>18</td>
</tr>
<tr>
<td ><input class="c1" type="checkbox" class="c2" ></td>
<td>haha</td>
<td>18</td>
</tr>
</tbody>
</table>
<input type="button" value="全选" onclick="quanxuan();">
<input type="button" value="反选" onclick="fanxuan();">
<input type="button" value="取消" onclick="quxiao();"> </body>
</html>
代码
事件
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。
onclick 当用户点击某个对象时调用的事件句柄。 onclick="f1();" 单击就调用函数f1()
ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。 // 练习:输入框
onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
onkeypress 某个键盘按键被按下并松开。
onkeyup 某个键盘按键被松开。
onload 一张页面或一幅图像完成加载。
onmousedown 鼠标按钮被按下。
onmousemove 鼠标被移动。
onmouseout 鼠标从某元素移开。
onmouseover 鼠标移到某元素之上。 onselect 在文本框中的文本被选中时发生。
onsubmit 确认按钮被点击,使用的对象是form。
this:(重要 常在函数中用)
<!--注意此时 this 就能代表这个input标签对象 f1(this) 中的 this 是实参-->
<input type="text" placeholder="霸王洗发水" onfocus="f1(this)" onblur="f2()">
例子:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>洗发</title>
</head>
<body>
<!--注意此时 this 就能代表这个input标签对象 f1(this) 中的 this 是实参-->
<input type="text" placeholder="霸王洗发水" onfocus="f1(this)" onblur="f2(this)"> </body>
<script>
//这是一个函数 这时候的ths 是形参
function f1(ths){
//给ths 添加 placeholder=''的属性
ths.setAttribute('placeholder','')
}
function f2(ths){
//给ths 添加 placeholder='霸王洗发水' 的属性
ths.setAttribute('placeholder','霸王洗发水') } </script> </html>
例子:双击改变图案的形状
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>事件实例</title>
<style>
div{background-color:rosybrown;
width:200px;
height:500px;
}
</style>
</head>
<body>
<!--实现双击这个块级标签就触发函数f1()-->
<div ondblclick="f1();"></div>
<script>
function f1(){
var divelem=document.getElementsByTagName('div');
//实现双击调用函数f1() 改变div颜色
divelem[0].style.backgroundColor='red';
}
</script> </body>
</html>
常用的那些
操作内容
innerText 文本
innerHTML HTML内容
value 值
文档节点的增删改查
增
createElement(name) 创建节点(标签)
appendChild( 节点名称,不用加引号 ) 末尾添加节点,并返回新增节点
insertBefore() 参照节点之前插入节点,两个参数:要插入的节点和参照节点
例子:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>创建文档标签</title>
</head>
<body>
<table border="2">
<thead>
<tr>
<th>id</th>
<th>姓名</th>
<th>爱好</th>
</tr>
</thead>
<tbody id="t1">
<tr >
<td> 1</td>
<td> 晓梅</td>
<td> 不知道</td>
</tr>
</tbody> </table>
<script>
function f(){
//找到tbody标签
var trelem=document.getElementById('t1');
//创建一个tr标签
var tr2=document.createElement('tr');
//创建一个td标签
var td1=document.createElement('td');
//在td标签中写入内容
td1.innerText='2';
//将td 放到tr中去
tr2.append(td1);
//将tr 放到body 中去
trelem.append(tr2); // //可以通过这种方式给<tr></tr> 标签网里边添加内容
// tr2.innerHTML='<td>2</td><td> 李岩</td><td> 洗脚</td>'; }
</script> </body>
</html>
给文档增加一行
删
查找到要删除的元素
获取它的父元素
使用removeChild()方法删除
改
第一种方式:
使用上面增和删结合完成修改
第二种方式:
使用setAttribute();方法修改属性
使用innerHTML属性修改元素的内容
一些属性标签的修改‘
3. 创建标签
1. doucument.creatElement("div") --> 要创建什么标签括号里面就写什么
2. 设置标签内容
1. eleObj.innerHTML = "<p>P标签</p>"
2. eleObj.innerText = "标签中间的文本"
3. 标签属性
1. input标签相关
1. inputEle.value --> 获取input框的输入值
2. inputEle.value = "请输入xxx" --> 设置input框的值
2. checkbox标签相关
1. checkboxEle.checked --> 返回true或false
2. checkboxEle.checked = true --> 选中该checkbox
3. select标签相关
1. selectObj.options --> 获取所有的option选项 (数组)
2. selecObj.selectedIndex --> 获取选中的option的索引值
3. selecObj.options.length=0 --> 快速清空option
查
使用之前介绍的方法.
重要例子:select联动:
选择省连动的市也能够根这出现
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>联动</title>
</head>
<body>
<select name="" id="s1" onchange="f();" >
<option value="">请选择省份</option>
<!--<option value="">河北</option>-->
<!--<option value="">湖南</option>-->
<!--<option value="">四川</option>-->
</select>
<select name="" id="s2">
<option value="" >请先选省份</option>
</select> <script> var s1='';
var data={'河北':['石家庄','保定','邯郸'],'湖南':['长沙','岳阳','其他'],'四川':['攀枝花']};
//吧var中的key 都拿出来,生成option标签,放到s1的select中去
//1吧可以都拿出来
for (var key in data){
console.log(key);
//在for循环中创建字符串Op 里边写的是option标签
var op='<option>'+key+'</option>';
//将所有标签都循环加到开始为空的一个字符串s1中去
s1+=op;
}
var celeEle=document.getElementById('s1');
//给省那里加上这一个字符串,用innerHTML写入会生成三个省的option标签
celeEle.innerHTML=s1; s2='';
function f(){
var xianshishi=document.getElementById('s2');
//每次选择都先将市的长度置为0
xianshishi.options.length=0;
//得到option的列表
var ops=celeEle.options;
console.log(ops);
//将选择的省的下标取到
var selin=celeEle.selectedIndex;
console.log(selin);
//根据下下标取出选择的省的option标签 如 <option>河北</option>
var xuansheng=ops[selin];
//取出里边的字 如 河北
var shengtext=xuansheng.innerText;
console.log(shengtext); //根据选的省 联想出市,
// var sheng=document.getElementById('s2');
//从字典中根据键(省)取出值(市的列表)
var shi=data[shengtext];
console.log(shi);
//在for循环中将市写成option的格式,与省的写法一样
for (var i=0; i<shi.length;i++){
var shi1='<option>'+shi[i]+'</option>';
console.log(shi1);
s2+=shi1;
} xianshishi.innerHTML=s2;
}
</script> </body>
</html>
选择省,关联出他下边的市
重要例子:事件的绑定,有event
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body>
<ul id="i1">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>24</li>
<li>25</li>
<li>26</li>
<li>27</li>
<li>28</li>
<li>29</li>
<li>30</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>34</li>
<li>35</li>
<li>36</li>
<li>37</li>
<li>38</li>
<li>39</li>
<li>40</li>
<li>41</li>
<li>42</li>
<li>43</li>
<li>44</li>
<li>45</li>
<li>46</li>
<li>47</li>
<li>48</li>
<li>49</li>
<li>50</li>
<li>51</li>
<li>52</li>
<li>53</li>
<li>54</li>
<li>55</li>
<li>56</li>
<li>57</li>
<li>58</li>
<li>59</li>
<li>60</li>
<li>61</li>
<li>62</li>
<li>63</li>
<li>64</li>
<li>65</li>
<li>66</li>
<li>67</li>
<li>68</li>
<li>69</li>
<li>70</li>
<li>71</li>
<li>72</li>
<li>73</li>
<li>74</li>
<li>75</li>
<li>76</li>
<li>77</li>
<li>78</li>
<li>79</li>
<li>80</li>
<li>81</li>
<li>82</li>
<li>83</li>
<li>84</li>
<li>85</li>
<li>86</li>
<li>87</li>
<li>88</li>
<li>89</li>
<li>90</li>
<li>91</li>
<li>92</li>
<li>93</li>
<li>94</li>
<li>95</li>
<li>96</li>
<li>97</li>
<li>98</li>
<li>99</li>
<li>100</li>
</ul> <script>
// //传统写法
// var lieles = document.getElementsByTagName('li');
//// console.log(lieles);
// for (var i=0;i<lieles.length;i++){
////一个一名函数,
// lieles[i].onclick=function () {
////this 代表被选择的
// alert(this.innerText);
//
// };
// }
var a=document.getElementById('i1');
a.onclick=function(event){
//把事件自身点击事件当成参数传进来
// 在控制台上打印event.target 事件 目标
console.log(event.target);
var targetEle=event.target;
alert(targetEle.innerText);
}
</script> </body>
</html>
事件的绑定
day 53 js学习之的更多相关文章
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- js学习之变量、作用域和内存问题
js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(2)花式捆绑
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- js学习篇1--数组
javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- NODE.JS学习的常见误区及四大名著
NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...
随机推荐
- set循环遍历删除特定元素
使用Iterator迭代器 public class Demo { public static void main(String[] args) { Set<Object> obj = n ...
- memset详解 设置无穷大INF
memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); ...
- 玩转X-CTR100 l STM32F4 l VIN输入电压采集(锂电池电量计)
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 采集VIN ...
- jdbc中Class.forName(driverName)的作用
上次面试别人问我jdbc的过程: 我是这样回答的: Class.forName加载驱动 DriverManager.connect(url,username, password)获取连接对象 conn ...
- Linux文件系统命令 split
命令:split 功能:将文件按照一定的规则进行切割 用法:-l 表示按照行数进行切割. -b 表示按照字节进行切割,切割后的文件名为自己定义的文件名+aa,ab,ac类似的后缀. eg: 按照行数进 ...
- EF6增改删等常用基类
using System; using System.Linq; using System.Threading.Tasks; using System.Linq.Expressions; using ...
- python flask大型项目目录
Hello World 作者背景 应用程序简介 要求 安装 Flask 在 Flask 中的 “Hello, World” 下一步? 模板 回顾 为什么我们需要模板 模板从天而降 模板中控制语句 模板 ...
- python点滴:判断字符串是否为合法json格式
在一些情况下,我们需要判断字符串是否为合法json格式. 思路很简单:尝试对字符串使用json.loads(),如果不是合法json格式,则会抛出ValueError异常. 示例如下: import ...
- HDU 6106 17多校6 Classes(容斥简单题)
Problem Description The school set up three elective courses, assuming that these courses are A, B, ...
- 对于java自定义的工具类的提炼 注意事项
1.工具类的方法都用static修饰. 因为工具类一般不创建对象,直接类名.方法()使用 2.一些 定义的常亮需要 public static final 修饰. 3.一些与数据库的连接之类的设定 , ...