zoukankan      html  css  js  c++  java
  • js例子和Jquery

    一 js案例

    <div id="d1" class="c1 bg_red bg_green"></div>
    <button id="d2">变色</button>
    
    <script>
            let btnEle = document.getElementById('d2')
            let divEle = document.getElementById('d1')
            btnEle.onclick = function () {  // 绑定点击事件
                // 动态的修改div标签的类属性
                divEle.classList.toggle('bg_red')
            }
    </script>
    开关灯案例
    <input type="text" value="老板 去吗?" id="d1">
    
    <script>
        let iEle = document.getElementById('d1')
        // 获取焦点事件
        iEle.onfocus = function () {
            // 将input框内部值去除
            iEle.value = ''
            //  点value就是获取   等号赋值就是设置
        }
        // 失去焦点事件
        iEle.onblur = function () {
            // 给input标签重写赋值
            iEle.value = '没钱 不去!'
        }
    </script>
    input框获取焦点失去焦点案例
    <input type="text" id="d1" style="display: block;height: 50px; 200px">
    <button id="d2">开始</button>
    <button id="d3">结束</button>
    
    <script>
        // 先定义一个全局存储定时器的变量
        let t = null
        let inputEle = document.getElementById('d1')
        let startBtnEle = document.getElementById('d2')
        let endBtnEle = document.getElementById('d3')
        // 1 访问页面之后 将访问的时间展示到input框中
        // 2 动态展示当前时间
        // 3 页面上加两个按钮 一个开始 一个结束
        function showTime() {
            let currentTime = new Date();
            inputEle.value = currentTime.toLocaleString()
        }
    
        startBtnEle.onclick = function () {
            // 限制定时器只能开一个
            if(!t){
                t = setInterval(showTime,1000)  // 每点击一次就会开设一个定时器 而t只指代最后一个
            }
        }
        endBtnEle.onclick = function () {
            clearInterval(t)
            // 还应该将t重置为空
            t = null
        }
    </script>
    实时展示当前时间
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
    <select name="" id="d1">
        <option value="" selected disabled>--请选择--</option>
    </select>
    <select name="" id="d2"></select>
    
    <script>
        let proEle = document.getElementById('d1')
        let cityEle = document.getElementById('d2')
        // 先模拟省市数据
        data = {
            "河北": ["廊坊", "邯郸",'唐山'],
            "北京": ["朝阳区", "海淀区",'昌平区'],
            "山东": ["威海市", "烟台市",'临沂市'],
            '上海':['浦东新区','静安区','黄浦区'],
            '深圳':['南山区','宝安区','福田区']
        };
        // 选for循环获取省
        for(let key in data){
            // 将省信息做成一个个option标签 添加到第一个select框中
            // 1 创建option标签
            let opEle = document.createElement('option')
            // 2 设置文本
            opEle.innerText = key
            // 3 设置value
            opEle.value = key  // <option value="省">省</option>
            // 4 将创建好的option标签添加到第一个select中
            proEle.appendChild(opEle)
        }
        // 文本域变化事件  change事件
        proEle.onchange = function () {
            // 先获取到用户选择的省
            let currentPro = proEle.value
            // 获取对应的市信息
            let currentCityList = data[currentPro]
            // 清空市select中所有的option
            cityEle.innerHTML = ''
            // 自己加一个请选择
            let ss = "<option disabled selected>请选择</option>"
            // let oppEle = document.createElement('option')
            // oppEle.innerText = '请选择'
            // oppEle.setAttribute('selected','selected')
            cityEle.innerHTML = ss
    
            // for循环所有的市 渲染到第二个select中
            for (let i=0;i<currentCityList.length;i++){
                let currentCity = currentCityList[i]
                // 1 创建option标签
                let opEle = document.createElement('option')
                // 2 设置文本
                opEle.innerText = currentCity
                // 3 设置value
                opEle.value = currentCity  // <option value="省">省</option>
                // 4 将创建好的option标签添加到第一个select中
                cityEle.appendChild(opEle)
            }
        }
    </script>
    </body>
    </html>
    省市联动

    二 jQuery  

      jQuery内部封装了原生的js代码(还额外添加了很多的功能),能够让你通过书写更少的代码 完成js操作, 类似于python里面的模块 在前端模块不叫模块 叫 “类库”

      兼容多个浏览器的 你在使用jQuery的时候就不需要考虑浏览器兼容问题

      jQuery的宗旨让你用更少的代码完成更多的事情 

    1 文件下载到了本地 如何解决多个文件反复书写引入语句的代码
        可以借助于pycharm自动初始化代码功能完成自动添加
          配置
            编辑
              file and code template
      """我不想下载jQuery文件 能不能使用呢?"""
      
    2 直接引入jQuery提供的CDN服务(基于网络直接请求加载)
        CDN:内容分发网络
          CDN有免费的也有收费的
        前端免费的cdn网站:
              bootcdn
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      """你的计算机必须要有网络"""
    文件导入

      2.1 jQuery的基本语法

      jQuery(选择器).action()

      秉持着jQuery的宗旨 jQuery简写 $jQuery() === $()

      2.2 js和jQuery对比

    将p标签内部的文本颜色改为红色
    // 原生js代码操作标签
    let pEle = document.getElementById('d1')
    pEle.style.color = 'red'
    
    // jQuery操作标签
    $('p').css('color','blue')

    三如何查找标签

      3.1基本选择器

    id选择器
    $('#d1')
    w.fn.init [div#d1]0: div#d1length: 1__proto__: Object(0)
    
    class选择器
    $('.c1')
    w.fn.init [p.c1, prevObject: w.fn.init(1)]0: p.c1length: 1prevObject: w.fn.init [document]__proto__: Object(0)
    
    标签选择器
    $('span')
    w.fn.init(3) [span, span, span, prevObject: w.fn.init(1)]

      3.2 对象之间的转换

    jQuery对象如何变成标签对象
    $('#d1')[0]
    <div id=​"d1">​…​</div>​
    document.getElementById('d1')获取的是标签对象
    <div id=​"d1">​…​</div>​
    
    标签对象如何转jQuery对象
    $(document.getElementById('d1'))
    w.fn.init [div#d1]

      3.3 组合选择器/分组与嵌套

    $('div')
    w.fn.init(2) [div#d1, div.c1, prevObject: w.fn.init(1)]
    
    $('div.c1')
    w.fn.init [div.c1, prevObject: w.fn.init(1)]0: div.c1length: 1prevObject: w.fn.init [document]__proto__: Object(0)
    
    $('div#d1')
    w.fn.init [div#d1, prevObject: w.fn.init(1)]
    
    $('*')
    w.fn.init(19) [html, head, meta, title, meta, link, script, script, body, span, span, div#d1, span, p#d2, span, span, div.c1, span, span, prevObject: w.fn.init(1)]
    
    并列+混用
    $('#d1,.c1,p')  
    w.fn.init(3) [div#d1, p#d2, div.c1, prevObject: w.fn.init(1)]
    
    后代              
    $('div span')  
    w.fn.init(3) [span, span, span, prevObject: w.fn.init(1)]
    
    儿子
    $('div>span')
    w.fn.init(2) [span, span, prevObject: w.fn.init(1)]
    
    毗邻
    $('div+span')
    w.fn.init [span, prevObject: w.fn.init(1)]
    
    弟弟
    $('div~span') 
    w.fn.init(2) [span, span, prevObject: w.fn.init(1)]

      3.4 基本筛选器

    $('ul li')
    w.fn.init(10) [li, li, li, li, li, li, li.c1, li, li#d1, li, prevObject: w.fn.init(1)]
    
    大儿子 
    $('ul li:first') 
    w.fn.init [li, prevObject: w.fn.init(1)]0: lilength: 1prevObject: w.fn.init [document]__proto__: Object(0)
    
    小儿子
    $('ul li:last')  
    w.fn.init [li, prevObject: w.fn.init(1)]0: lilength: 1prevObject: w.fn.init [document]__proto__: Object(0)
    
    放索引               
    $('ul li:eq(2)')        
    w.fn.init [li, prevObject: w.fn.init(1)]0: lilength: 1prevObject: w.fn.init [document]__proto__: Object(0)
    
    偶数索引 0包含在内               
    $('ul li:even')  
    w.fn.init(5) [li, li, li, li.c1, li#d1, prevObject: w.fn.init(1)]0: li1: li2: li3: li.c14: li#d1length: 5prevObject: w.fn.init [document]__proto__: Object(0)
     
    奇数索引            
    $('ul li:odd')  
    w.fn.init(5) [li, li, li, li, li, prevObject: w.fn.init(1)]0: li1: li2: li3: li4: lilength: 5prevObject: w.fn.init [document]__proto__: Object(0)
     
    大于索引             
    $('ul li:gt(2)')  
    w.fn.init(7) [li, li, li, li.c1, li, li#d1, li, prevObject: w.fn.init(1)]0: li1: li2: li3: li.c14: li5: li#d16: lilength: 7prevObject: w.fn.init [document]__proto__: Object(0)
     
    小于索引             
    $('ul li:lt(2)')  
    w.fn.init(2) [li, li, prevObject: w.fn.init(1)]0: li1: lilength: 2prevObject: w.fn.init [document]__proto__: Object(0)
    
    移除满足条件的标签              
    $('ul li:not("#d1")')  
    w.fn.init(9) [li, li, li, li, li, li, li.c1, li, li, prevObject: w.fn.init(1)]
             
    选取出包含一个或多个标签在内的标签
    $('div:has("p")')  
    w.fn.init [div, prevObject: w.fn.init(1)]

      3.5 属性选择器

    $('[username]')
    w.fn.init(3) [input, input, p, prevObject: w.fn.init(1)]
    $('[username="jason"]')
    w.fn.init [input, prevObject: w.fn.init(1)]
    $('p[username="egon"]')
    w.fn.init [p, prevObject: w.fn.init(1)]
    
    $('[type]')
    w.fn.init(2) [input, input, prevObject: w.fn.init(1)]
    $('[type="text"]')
    w.fn.init(2) [input, input, prevObject: w.fn.init(1)]

      3.6表单筛选器

    $('input[type="text"]')
    w.fn.init [input, prevObject: w.fn.init(1)]0: inputlength: 1prevObject: w.fn.init [document]__proto__: Object(0)
    $('input[type="password"]')
    w.fn.init [input, prevObject: w.fn.init(1)]
    
    $(':text')  # 等价于上面第一个
    w.fn.init [input, prevObject: w.fn.init(1)]0: inputlength: 1prevObject: w.fn.init [document]__proto__: Object(0)
    $(':password')  # 等价于上面第二个
    w.fn.init [input, prevObject: w.fn.init(1)]
    
    
    :text
    :password
    :file
    :radio
    :checkbox
    :submit
    :reset
    :button
    ...
    
    表单对象属性
    :enabled
    :disabled
    :checked
    :selected
    """特殊情况"""
    $(':checked')  # 它会将checked和selected都拿到
    w.fn.init(2) [input, option, prevObject: w.fn.init(1)]0: input1: optionlength: 2prevObject: w.fn.init [document]__proto__: Object(0)
    $(':selected')  # 它不会 只拿selected
    w.fn.init [option, prevObject: w.fn.init(1)]
    $('input:checked')  # 自己加一个限制条件
    w.fn.init [input, prevObject: w.fn.init(1)]

      3.6 筛选器方法

    $('#d1').next()  # 同级别下一个
    w.fn.init [span, prevObject: w.fn.init(1)]0: spanlength: 1prevObject: w.fn.init [span#d1]__proto__: Object(0)
    
    $('#d1').nextAll()
    w.fn.init(5) [span, div#d2, span, span, span.c1, prevObject: w.fn.init(1)]0: span1: div#d22: span3: span4: span.c1length: 5prevObject: w.fn.init [span#d1]__proto__: Object(0)
    
    查找跟随 <div clas=‘d1’> 的同胞元素,直到下一个id为c1的元素为止
    $('#d1').nextUntil('.c1')  
    w.fn.init(4) [span, div#d2, span, span, prevObject: w.fn.init(1)]0: span1: div#d22: span3: spanlength: 4prevObject: w.fn.init [span#d1]__proto__: Object(0)
                  
                  
    $('.c1').prev()  # 上一个
    w.fn.init [span, prevObject: w.fn.init(1)]0: spanlength: 1prevObject: w.fn.init [span.c1, prevObject: w.fn.init(1)]__proto__: Object(0)
    
    $('.c1').prevAll()
    w.fn.init(5) [span, span, div#d2, span, span#d1, prevObject: w.fn.init(1)]
    
    $('.c1').prevUntil('#d2')
    w.fn.init(2) [span, span, prevObject: w.fn.init(1)]
    
    第一级父标签            
    $('#d3').parent()  
    w.fn.init [p, prevObject: w.fn.init(1)]0: plength: 1prevObject: w.fn.init [span#d3]__proto__: Object(0)
    
    $('#d3').parent().parent()
    w.fn.init [div#d2, prevObject: w.fn.init(1)]
    
    $('#d3').parent().parent().parent()
    w.fn.init [body, prevObject: w.fn.init(1)]
    
    $('#d3').parent().parent().parent().parent()
    w.fn.init [html, prevObject: w.fn.init(1)]
    
    $('#d3').parent().parent().parent().parent().parent()
    w.fn.init [document, prevObject: w.fn.init(1)]
    
    $('#d3').parent().parent().parent().parent().parent().parent()
    w.fn.init [prevObject: w.fn.init(1)]
    
    $('#d3').parents()
    w.fn.init(4) [p, div#d2, body, html, prevObject: w.fn.init(1)]
    
    $('#d3').parentsUntil('body')
    w.fn.init(2) [p, div#d2, prevObject: w.fn.init(1)]
                  
                  
    $('#d2').children()  # 儿子
                  
    $('#d2').siblings()  # 同级别上下所有
                  
                  
                  
    $('div p')
    等价         
    find从某个区域内筛选出想要的标签  
    $('div').find('p')  
                  
                  
    """下述两两等价"""
    $('div span:first')
    w.fn.init [span, prevObject: w.fn.init(1)]
    
    $('div span').first()
    w.fn.init [span, prevObject: w.fn.init(3)]0: spanlength: 1prevObject: w.fn.init(3) [span, span#d3, span, prevObject: w.fn.init(1)]__proto__: Object(0)
                                                                                        
    $('div span:last')
    w.fn.init [span, prevObject: w.fn.init(1)]
    
    $('div span').last()                                                                                   
    w.fn.init [span, prevObject: w.fn.init(3)]
    
    $('div span:not("#d3")')
    w.fn.init(2) [span, span, prevObject: w.fn.init(1)]
    
    $('div span').not('#d3')
    w.fn.init(2) [span, span, prevObject: w.fn.init(3)]

     

  • 相关阅读:
    vue中的具名插槽
    vue中默认插槽slot
    局部组件使用指令-方法-过滤器-计算属性
    vue创建局部组件
    Class Metaprogramming
    Attribute Descriptors
    Dynamic Attributes and Properties
    Concurrency with asyncio
    Concurrency with Futures
    Coroutines
  • 原文地址:https://www.cnblogs.com/bk134/p/12917263.html
Copyright © 2011-2022 走看看