day14-jQuery.md

内容回顾

# js语法
# ECMAscript
    # 变量
    # 基础数据类型 : number string boolean object array json
    # 运算符 : b=a++ b=++a 1=='1' 1===1
    # 流程控制
        # if(条件){
            # 条件满足之后的逻辑
        # }
        # else if(条件){
            # 条件满足之后的逻辑
        # }
        # else{
            # 上面条件都不满足之后的逻辑
        # }

        # for(var i=0;i<10;i++){
        # }
        # for(i in arry){
        # }

        # while(条件){
        # }
    # 定义函数
        # function 函数名(){
            # arguments
        # }
# Bom 浏览器对象模型
    # location.href
    # history.back()/history.forward()
    # history.go(-1)/history.go(1)
# Dom 文档对象模型
    # 创建标签 :document.createElement('标签的名字')
    # 查找标签 : 按照id 按照class 按照标签名查
    # 间接查找 : 父子兄弟
    # 操作节点 : 节点的增加 删除 替换
    # 值操作 : .innerText='要放在标签里的值'=  .innerHTML='<p>要放在标签里的整个标签内容</p>'
    # 属性操作
    # 类操作
    # 值操作
    # 样式操作

    # 事件 onclick事件
        # 找到一个标签的dom对象  :直接查找\间接查找
        # 给这个dom对象绑定一个事件
            # dom_obj.onclick = function(){
            # }

            # dom_obj.onclick = 函数名()
            # function 函数名(){
            # }
        # 给这个事件写一个动作函数
            # 动作就是函数内部的内容

今日内容

# jquery
# 高级的javascript 提供了js更加便利的使用方式

# bootstrap 别人写好的各种样式
# 引入一下,看看效果

jquery笔记

# jquery的导入
# jquery查找标签
    # jquery对标签的查找完全可以复用选择器规则
    # 通过jquery对象转换成dom对象 jq_obj[index]
# 选择器语法查找
    # 标签选择器
        # $('p')        标签选择器
        # $('.para1')   类选择器
        # $('#container')   id选择器
        # $('*')         通用选择器
        # $('p.para1')   交集选择器
        # $('div,p')   并集选择器
    # 层级选择器
        # $(div p) 后代选择器 : 找到子孙中符合条件的
        # $(div>p)子代选择器 : 找子代中符合条件的
        # $(div+p)毗邻选择器 : 找紧邻的下一个
        # $(div~p)弟弟选择器 : 找某一个标签下的所有xxx标签
    # 属性选择器
        # $('[属性名]')  $('[href]')
        # $('[属性名='属性值']')  $('[href='http://www.baidu.com']')
        # $('[属性名^='属性值']')  $('[href^='http')
        # $('[属性名$='属性值']')  $('[href$='com')
        # $('[属性名*='属性值']')  $('[href*='baidu')
        # $('[属性名!='属性值']')  $('[href!='baidu')

# 筛选器
    # $(选择器:筛选器)
    # 根据索引筛选
        # $('p:first')
        # $('p:last')
        # $('p:even')
        # $('p:odd')
        # $('p:eq(index)')
        # $('p:gt(index)')
        # $('p:lt(index)')
    # not 筛选不包含某选择器要求的xxx
        # $('p:not(.para3)')
    # has 通过子代找当前
        # $('li:has(a)')
    # 表单筛选器,根据type进行筛选
        # $('input:type类型:选中情况')
        # $('input:radio:checked')
        # $('input:text:disabled')
        # $('input:text')
        # $('input:password')
        # input中没有date筛选器
        # $(':selected')
        # $('option:selected')
# 标签的筛选方法
    # 兄弟 : siblings()
    # 弟弟 : next() nextAll() nextUntil()
    # 哥哥 : prev() preAll() prevUntil()

    # 祖辈 :parent() parents() parentsUntil()
    # 子  :children()

# 过滤方法
    # .first()
    # .last()
    # .eq(index)
    # .not('#disable')
    # .filter('.para1')
    # .find('a')
    # .has('a')

    
    
    # 操作标签的增 删 改 复制
    # 增
    # 父子关系
    #    append appendTo
        # jq.append(dom对象/jq对象/写好的标签字符串) 表示在jq对象中添加一个标签
        # jq对象.appendTo(父级标签选择器/标签字符串/jq对象/dom对象)
    #    prepend prependTo
        # 父jq对象.prepend(子元素)
        # 子jq对象.prependTo(父元素)
    # 兄弟关系
    #    after insertafter
        # 旧.after(新)
        # 新.insertafter(旧)
    #    before insertbefore
        # 旧.before(新)
        # 新.insertbefore(旧)
    # 删
        # remove 删除标签也删除事件
        # detach 删除标签但不删除事件
        # empty  清空标签内的子标签
    # 改
        # 旧的.replacewith(新)
        # 新的.replaceAll(旧)
    # 复制
        # clone()     单纯的克隆标签但不克隆事件
        # clone(true) 克隆标签包括标签所带事件
# 操作标签的文本
    # jq.text('要写的文本')
    # jq.html('要写的标签内容')
# 操作标签的属性
    # attr('class')     获取当前class的值
    # attr('class','value') 设置class的值
    # removeAttr('readonly') 删除readonly属性
    # prop('checked')   选中返回true 没选中返回false
# 操作标签的类
    # addclass('类名')    添加一个类
    # removeclass('类名') 删除一个类
    # toggleclass('类名') 有就删除 没有就添加
# 操作标签的值 - 针对表单标签
    # val()    如果不传参数表示获取value属性的值
    # val(值)  如果传参数,表示设置value属性的值
    # $(':checkbox').val([2])
    # 对于radio\checkbox\select标签,所有的修改选中的状况都需要把要选中的值放到数组中
# 操作标签的css样式
    # css('样式名')
    # css('样式名','样式值')
    # css({'样式名':'样式值'})
# jq绑定事件
'''
<body>
<button>点击</button>
</body>
<script>
    $('button').click(
        function () {
            alert('click')
        })
</script>
'''

# 添加 移除 按钮和事件绑定操作ul标签

jquery的导入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>
    <div id="container">
        <h1 class="para1">我是第一自然段</h1>
        <p class="para1">我是第一自然段</p>
        <form action="">
            <p>form p</p>
            <input type="text">
            <a href="https://www.baidu.com">baidu</a>
            <a href="http://www.bilibili.com" class="bl">bilibili</a>
            <a href="https://www.luffycity.com">luffy</a>
            <a href="http://www.jd.com">jingdong</a>
            <input type="checkbox" value="1">
        </form>
        <ul>
            <li class="city">北京</li>
            <li class="city"><a href="">上海</a></li>
            <li class="city">天津</li>
        </ul>
        <p class="para2">我是第二自然段</p>
        <p class="para3">我是第三自然段</p>
    </div>
    <p class="para4">我是第四自然段</p>
    <p class="para5">我是第五自然段</p>
    <p class="para6">我是第六自然段</p>
</body>
</html>

表单筛选器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>
<form action="">
    <input type="text">
    <input type="password">
    <input type="checkbox">
    <input type="radio">
    <input type="submit" disabled>
    <input type="reset" disabled>
    <input type="button" disabled>
    <input type="date" disabled>
    <input type="file" disabled>
    <select name="" id="">
        <option value="1">北京</option>
        <option value="2">上海</option>
        <option value="3">河北</option>
    </select>
</form>
</body>
</html>

筛选方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>
<div class="foo">
    <div class="son">
         <p class="para1">我是第一自然段</p>
        <p class="para2"><a>我是<span>第二自然段</span></a></p>
        <p class="para3">我是第三自然段</p>
    </div>
</div>
    <p class="para4">我是第四自然段</p>
    <p class="para5">我是第五自然段</p>
    <p class="para6">我是第六自然段</p>
    <p class="para7">我是第7自然段</p>
    <p class="para8">我是第8自然段</p>
    <p class="para9">我是第9自然段</p>
    <p class="para10">我是第10自然段</p>
</body>
</html>

query操作标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <style>
        .city{
            background-color: lightcyan;
        }
    </style>
</head>
<body>
<ul>
    <li class="city">北京</li>
    <li class="city">山东</li>
</ul>
<form action="">
    <input type="text" value="alexander" readonly="readonly" class="lst">
    <input type="text" value="alexander" readonly="readonly">
    <input type="checkbox" name="hobby" value="1">
    <input type="checkbox" name="hobby" value="2">
    <input type="checkbox" name="hobby" value="3">
    <input type="radio" name="sex" checked="checked"> 女
    <input type="radio" name="sex"> 男
</form>
<button>在之前插入</button>
<button>在之后插入</button>
</body>
<script>
    $('button:first').click(
        function () {
            var province = prompt('请输入省份:')
            var li = document.createElement('li')

            li.innerText = province
            $('ul').prepend(li)

        })
    $('button:last').click(
        function () {
            $('ul').append('<li>云南</li>')
        })
</script>
</html>

动画笔记

# $('div').stop()
# $('div').show(毫秒单位的数值)  从左上角到右下角逐渐显示
# $('div').hide(毫秒单位的数值)  从右下角到左上角逐渐消失
# $('div').toggle(毫秒单位的数值) 显示就消失 消失就显示

# 向下滑出,向上收起
# $('div').slideDown()
# $('div').slideUp()
# $('div').slideToggle()

# 淡入淡出
# $('div').FadeIn
# $('div').FadeOut
# $('div').FadeToggle

5 动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: tomato;
            display: none;
        }
    </style>
    <script src="jquery.js"></script>
</head>
<body>
<button>显示</button>
<div></div>
</body>
<script>
    $('button').click(
        function () {
            $('div').stop()
            $('div').fadeIn(1000)
        }
    )
</script>
</html>

6 事件笔记

# jq对象.click(
#     function (){
#         出发了click事件的逻辑
# }
# )

# $('input').focus(function()
# {
# $('input').css('background-color', 'yellow')
# }) // 获取焦点
# $('input').blur(function()
# {
# $('input').css('background-color', 'white')
# }) // 失去焦点

# 事件冒泡
# 当某一个子元素出发了事件之后,这个事件会一直向上一层父元素冒泡
# 如果此时父元素也对这个事件绑定了方法,那么会一直向上触发父元素的事件
# 阻止事件冒泡的方法:
    # 在function中return false
    # 在function中接收event参数,并执行event.stopPropergation()

# 事件委托
    # 在一个元素还没有出现之前,就可以为它绑定一些事件
# $('div').on('click', 'button', function()
# {
#     alert('点击我了')
# })
# 其中div是一个已经存在的父级元素,button这里可以替换成任意的子元素选择器

# 肖峰

6 事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>
<div></div>
<input type="text">
<button>click</button>
<button>click</button>
</body>
<script>
    $(window).keyup(
        function (event) {
            if(event.keyCode===27){
                window.close()
            }
        }
    )
    // $('input').change()
    // $('div').mouseenter()
    // $('div').mouseleave()
    // $('div').mouseover()
    // $('div').mouseout()
    $('input').focus(function () {
        $('input').css('background-color','yellow')
        $('span').remove()
    })    //获取焦点
     $('input').blur(function () {
        $('input').css('background-color','white')
         if(!$('input').val()){
            $('input').after('<span style="color:red">不能为空</span>')
         }
    })    //失去焦点
    $('button:first').click(function () {
        alert(event.data.k)
    })
    // $('button:first').click({'k':'v'},function (event) {
    //     alert(event.data.k)
    // })
    // $('button:last').bind('click',{'k':'v'},function (event) {
    //     alert('点击我啦')
    //     console.log(event.data.k)
    // })

</script>
</html>

7 事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            height: 400px;
            width: 400px;
            background-color: yellow;
        }
        div div{
            height: 200px;
            width: 200px;
            background-color: red;
        }
    </style>
    <script src="jquery.js"></script>
</head>
<body>
<div>
    <div id="outer">
        <div id="inner">

        </div>
    </div>
</div>

</body>
<script>
    $('#outer').click(
        function () {
            alert('click outer')
        }
    )
    $('#inner').click(
        function (event) {
            alert('click inner')
            event.stopPropagation()
            // return false
        }
    )
</script>
</html>

事件委托

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>
<div>
    <button>点击</button>
</div>
</body>
<script>
    $('div').on('click','button',function () {
        alert('点击我了')
    })
    // $('button').click(
    //     function () {
    //         alert('clicked')
    //     }
    // )


</script>
</html>

9 bootstrap

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <style>
        #s1{
            color: #2e6da4;
        }
    </style>
</head>
<body>
<span class="glyphicon glyphicon-asterisk" id="s1"></span>
<span class="glyphicon glyphicon-heart" style="color: red"></span>
<div class="row">
    <form class="col-md-6 col-md-offset-3">
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
  </div>
  <div class="form-group">
    <label for="exampleInputFile">File input</label>
    <input type="file" id="exampleInputFile">
    <p class="help-block">Example block-level help text here.</p>
  </div>
  <div class="checkbox">
    <label>
      <input type="checkbox"> Check me out
    </label>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
</div>


<div class="row">
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
  <div class="col-md-1">.col-md-1</div>
</div>
<div class="row">
  <div class="col-md-4">.col-md-4</div>
  <div class="col-md-6">.col-md-6</div>
  <div class="col-md-2">.col-md-2</div>
</div>
<div class="row">
  <div class="col-md-10 col-md-offset-1" style="background-color: yellow;">.col-md-4</div>

</div>

<blockquote>
  <p>吃饱了就不会饿</p>
  <footer>打油诗人<cite title="Source Title">松松</cite></footer>
</blockquote>

<table class="table table-hover">
    <thead>
        <tr>
            <th>标题</th>
            <th>标题</th>
            <th>标题</th>
            <th>标题</th>
            <th>标题</th>
        </tr>
    </thead>
    <tbody>
        <tr class="warning">
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>

        </tr>
           <tr class="success">
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>

        </tr>
               <tr class="danger">
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>
            <td>内容</td>

        </tr>

    </tbody>
</table>
</body>
</html>

表单控件练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>
<body>

<button id="all">全选</button>
<button id="reverse">反选</button>
<button id="cancel">取消</button>
<table border="1">
   <thead>
    <tr>
        <th>#</th>
        <th>姓名</th>
        <th>爱好</th>
    </tr>
   </thead>
    <tbody>
    <tr>
        <td><input type="checkbox"></td>
        <td>金老板</td>
        <td>开车</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>alex</td>
        <td>抽烟、喝酒、烫头</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>苑昊(苑局)</td>
        <td>不洗头、不翻车、不要脸</td>
    </tr>
    </tbody>
</table>


<script>
    // 点击全选按钮 选中所有的checkbox
    // DOM绑定事件方法
    // $("#all")[0].onclick = function(){}
    // jQuery绑定事件方法
    $("#all").click(function () {
        $(":checkbox").prop('checked', true);
    });
    // 取消
    $("#cancel").on("click", function () {
         $(":checkbox").prop('checked', false);
    });
    // 反选
    $("#reverse").click(function () {
        // 1. 找到所有选中的checkbox取消选中
        // $("input:checked").prop('checked', false);
        // // 2. 找到没有选中的checkbox选中
        // $("input:not(:checked)").prop('checked', true);
        //你会发现上面这么写,不行,为什么呢?因为你做了第一步操作之后,再做第二步操作的时候,所有标签就已经全部取消选中了,所以第二步就把所有标签选中了

        // 方法1. for循环所有的checkbox,挨个判断原来选中就取消选中,原来没选中就选中
        var $checkbox = $(":checkbox");
        for (var i=0;i<$checkbox.length;i++){
            // 获取原来的选中与否的状态
            var status = $($checkbox[i]).prop('checked');
            $($checkbox[i]).prop('checked', !status);
        }
        // 方法2. 先用变量把标签原来的状态保存下来
    //     var $unchecked =  $("input:not(:checked)");
    //     var $checked = $("input:checked");
    //
    //     $unchecked.prop('checked', true);
    //     $checked.prop('checked', false);
    })

</script>
</body>
</html>

轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <script src="js/bootstrap.js"></script>
    <link rel="stylesheet" href="css/bootstrap.css">

</head>
<body>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
    <li data-target="#carousel-example-generic" data-slide-to="1"></li>
    <li data-target="#carousel-example-generic" data-slide-to="2"></li>
  </ol>

  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <div class="item active">
      <img src="1.jpg" alt="...">
      <div class="carousel-caption">
      </div>
    </div>
    <div class="item">
      <img src="2.jpg" alt="...">
      <div class="carousel-caption">
      </div>
    </div>
  </div>

  <!-- Controls -->
  <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
</body>
</html>

自定义动画

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery.js"></script>
    <style>
        div {
            position: absolute;
            left: 20px;
            top: 30px;
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
    <script>
        jQuery(function () {
            $("button").click(function () {
                var json = {"width": 500, "height": 500, "left": 300, "top": 300, "border-radius": 100};
                var json2 = {
                    "width": 100,
                    "height": 100,
                    "left": 100,
                    "top": 100,
                    "border-radius": 100,
                    "background-color": "red"
                };

                //自定义动画
                $("div").animate(json, 1000, function () {
                    $("div").animate(json2, 1000, function () {
                        alert("动画执行完毕!");
                    });
                });

            })
        })
    </script>

</head>
<body>
<button>自定义动画</button>
<div></div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值