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>
事件的绑定

 

 

 

 

 

 

posted on 2017-12-29 18:14  王大拿  阅读(204)  评论(0编辑  收藏  举报

导航