zoukankan      html  css  js  c++  java
  • JQ 1

    1. 什么是jQuery

    2. 查找

    1. 什么是jQuery

      jQuery是快速的,简洁的第三方javascript库

     为什么:

        1. DOM操作的终极简化:

             DOM的问题: 核心DOM: 万能,繁琐

                                  HTML DOM: 简洁,不是万能

             jQuery在DOM操作的4个方面提供了终极简化:

             1. 查找元素, 操作元素(添加,删除,修改(内容,属性,样式))

             2. 事件处理:

             3. 动画效果: (了解)

             4. AJAX操作:

        2. 屏蔽了绝大多数浏览器兼容性问题:

             只要jQuery让我们用的,都是兼容的

     何时: 今后绝大多数公司的项目和绝大多数前端框架都是使用jQuery开发的。

     如何:

       1. 关于版本:

           1.x: 兼容旧浏览器

              未压缩: jquery-1.11.3.js ——可读性好,便于学习,大

              压缩: jquery-1.11.3.min.js ——生产环境使用,小

                     三方面: 去掉注释, 去掉换行和空字符, 极简化变量名

           2.x: 不再兼容旧浏览器

       2. 手册:

           day1 核心和选择器

           day2 选择器,属性,文档处理和css样式

           day3 事件和动画

       3. 开始使用:

          Step1: 下载jquery.js 保存在项目js文件夹下

          Step2: 在页面用<script src 引入jquery.js文件

             向window中添加了jQuery对象

                jQuery对象是封装所有简化版DOM操作API的全局对象

               window.jQuery=window.$=jQuery

          Step3: 使用jQuery简化版API执行DOM操作

               $("选择器") 查找元素

                   $底层其实使用的还是:

                     getElementById

                     getElementsByTagName,ClassName,...

                     querySelectorAll

                 问题: 使用DOM API返回的结果不能使用jQuery简化版API

                 $的返回值: jQuery结果集对象——类数组对象

                    只有$返回的结果,才能使用简化版API

                    普通DOM API返回的是标准DOM对象,不能使用简化版API。

                 jQuery API和DOM API 不能混用,也不通用

               $(...).click(function(){...})

       鄙视题: DOM对象 vs jQuery对象

          DOM对象: W3C的DOM标准规定,浏览器厂商已经实现的现成的对象。能使用DOM API——繁琐

          jQuery对象: 由jQuery库创建的,由第三方实现的。

             本质: 一个封装找到的一组DOM对象的类数组对象—集合

                     并在父对象中提供了简化版API

       要想使用jQuery简化版API,必须先获得jQuery结果集合对象:

        如何: 1. 用$("选择器")直接查找对象,返回的就是

                2. 如果已经获得一个DOM对象:

                    用$(DOM对象), 创建一个结果集合对象,并将DOM对象放入其中。

        jQuery结果集合对象的核心API:

         $(...).size() => $(...).length 找到的元素个数

         $(...).get(i) => $(...)[i]  从jQuery结果中取出DOM对象

                何时: 如果有jQuery实现不了的功能

                         就要见DOM对象从jQuery结果中取出

                         继续使用DOM API

         $(...).index($("要查找的元素"))

                返回要查找的元素在整个结果集中的位置

    2. 查找:

       按选择器查找: jQuery支持所有css选择器

           只要jQuery允许使用的css选择器,都屏蔽了兼容性问题

       包括:

         基本选择器: 同CSS

            #id   .class   element   *    selector1,selector2,...

         规律: $("...")返回的jQuery结果集合的所有API都自带forEach

                    后续的修改操作,会自动作用到每个找到的元素上

         层次选择器: 同CSS

            select1 select2 后代

            select1>select2 直接子代

            select1+select2 紧邻的下一个兄弟

            select1~select2 之后所有符合条件的兄弟

         过滤选择器:

           基本过滤: 位置过滤: 根据元素在结果集中的下标位置选择

              :first/last : 在结果集中选择第一个和最后一个元素

              *以下选择器下标从0开始!*

              :even/odd: 选择结果集中*下标*为偶数/奇数的元素

              :eq/gt/lt(i): 选择下标=,>或<i位置的其他元素

            何时: 只要根据元素在结果集合中的下标位置选择元素    

           子元素过滤: 选择在父元素下指定位置的子元素

                  强调: 参照的不是在结果集合中的位置

                           而是在父元素下的位置

              :first-child/last-child

              *以下选择器下标从1开始*

              :nth-child(n/odd/even/2n/2n+1)

           :not(selector): 同css,  否定选择器,可否定一切选择器

    1. 查询:

       练习:

         $(...).API() : 规律:  1. 自带forEach

                                      2. 每个API都返回原结果集合

       内容过滤: (了解) 根据元素的内容查找

         :contains(text): 查找内容中包含指定文本的元素

           span:contains("购物车"): 找内容中包含"购物车"的span

         :empty : 查找不包含任何内容的空元素

         :parent : 查找只要包含内容的父元素

         :has(selector) : 选择包含满足selector要求的子元素的父元素

            比如: div:has(.active) 包含class为active的子元素的div

       可见性过滤:  同CSS (了解)

         :visible : 匹配所有可见的元素

         :hidden : 匹配所有不可见的元素display:none

                        和type="hidden"的

       属性过滤选择器: 同CSS

        [属性] : 查找拥有该属性的元素

        [属性="值"] : 查找指定属性的值为"值"的元素

        [属性!="内容"] : 查找指定属性的值不为"值"的元素

        [属性^="内容"] : 查找指定属性的值以"内容"开头的

        [属性$="内容"] : 查找指定属性的值以"内容"结尾的

        [属性*="内容"] : 查找指定属性的值包含"内容"的

        [条件1][条件2]... : 查找同时满足条件1,2...的元素

       

       按节点间关系查找:

       1. 父子关系:

       $(parent).children() 查找parent下所有直接子元素

                      .children(selector)  查找parent下符合条件的元素

       $(parent).find(selector)  查找parent下所有后代元素中符合条件的

       $(child).parent()  获得child的父元素

       2. 兄弟关系:

          $(...).next/prev([selector])  获得下/前一个兄弟元素

         $(...).nextAll/prevAll([selector]) 获得之后/之前所有的兄弟元素

          $(...).siblings([selector]) 获得前后所有的兄弟元素

      练习:

        获取css样式属性的值:

          var 属性值=$(...).css("css属性名")

             .css默认获取的就是计算后的完整样式!

             .css默认设置的是内联样式

        问题: css样式属性修改,代码量大

        解决: 用class代替单独修改css样式

          $(...).addClass("类名") 向选中的元素添加类名

          $(...).removeClass("类名") 从选中的元素上移除类名

          $(...).hasClass("类名") 判断选中的元素上是否包含指定类名

          如果希望在有/没有"类名"之间切换:

          $(...).toggleClass("类名");

         

  • 相关阅读:
    HTML5新标签与特性---多媒体
    HTML5新标签与特性---新表单+新属性----综合案例1
    字体图标引入到HTML---复制用代码
    字体图标网站---常用汇总
    滑动门出现的背景---实例微信导航栏(a盒子里面包span盒子,文字写在span里)
    【Web前端开发】---前端培训roadmap
    清除浮动的4种方法
    进度更新---Responsive Web Design Certification (300 hours)
    Python实现一个桌面版的翻译工具【新手必学】
    Python爬虫老是被封的解决方法【面试必问】
  • 原文地址:https://www.cnblogs.com/Hale-Proh/p/7199702.html
Copyright © 2011-2022 走看看