首页 > 编程语言 > 详细

java jQuery

时间:2021-01-18 19:57:54      阅读:25      评论:0      收藏:0      [点我收藏+]

概念

jQuery  = javaScript + Query  通过js代码实现对页面元素的快速查询
write less,do more 书写较少的代码,实现更多的功能  宗旨
jQuery是一款优秀的快速的简洁的JavaScript框架(代码库) Jquery的设计宗旨 write less,do more
在他内部封装可javaScript功能代码,优化HTML文档处理,时间处理和AjAX交互
javaScript框架:本质上就是一些js文件,在他内部封装了js原生代码而已 $本质就是一个方法名字
// 封装一下根据id获取页面元素的方式  $ 本质就是一个方法对象名字
function $(selector) {
    if (selector.startsWith("#")) {
        var ele = document.getElementById(selector.substring(1));
        return ele;
    } else if (selector.startsWith(".")){
        var elementsByClassName = document.getElementsByClassName(selector.substring(1));
        return elementsByClassName;
    } else {
        var elementsByTagName = document.getElementsByTagName(selector);
        return elementsByTagName;
    }
}
<script>
        window.onload = function () {
            // 获取页面中的input标签元素  id  ClassName name  TagName
            // 通过id的方式来获取的
            var input01 = $("#lq");
            var input02 = $("#zq");
            alert(input01.value);
            alert(input02.value);
            var inputs = $(".inp01");
            alert(inputs[0].value);
            alert(inputs[1].value);
            // 通过标签选择器来获取页面中的元素
            var elementsByTagName = $("input");
            alert(elementsByTagName);
        }
</script>
<input type="text" value="篮球" id="lq" />
<input type="text" value="足球" id="zq" />
<input type="text" value="乒乓球" class="inp01"/>
<input type="text" value="排球" class="inp01" />


快速入门
    ? 步骤
    1.下载一个jq插件 https://jqery.com/
    2.版本介绍:目前市面上有三种版本,优先推荐使用1.xxx系列版本
    3.压缩版本(juery.min.js生产版本)体积较小 加载较快     和    未压缩版本(juery.js开发版本)
    4.在项目中引入jquery插件,引入到web目录下在web目录下新建一个js文件夹,粘贴进去
    5.在页面中通过<script src = "jquery路径">


jquery对象和js原生对象的区别于转换
    ? 获取方式不一样:
        ○ jQuery对象:通过$("选择器")方式来获取的页面元素
        ○ DOM对象:通过window.document.getElementByXxx()方式来获取的
    ? jQuery和js原生的DOM对象中的方法不通用.
    ? 两者之间可以相互转换
        ○ jQuery--->dom  方式:jquery对象[索引],jquery对象.get(索引)
        ○ dom--->jQuery  方式:$(dom对象)
    ? 注意事项:
     window.onload = function () {
                var inputs = document.getElementsByTagName("input");// 对象数组
                // 遍历
                // of -----> 获取的是对象数组中的每一个对也就是value值 ["小明","小花","小孙","小刘"]
                for (let input of inputs) {
                    input.value = "棒球";
                    for (let inputKey in input) {
                        //console.log(inputKey);
                        document.write(inputKey+"<br>");
                    }
                }
                // in ----->  获取的是对象数组中的每一个对象所对应的索引值  ["小明","小花","小孙","小刘"]-             -> 0 1 2 3
                for (let inputsKey in inputs) {
                    inputs[inputsKey].value = "羽毛球";
                }
                /*
                    for in  --> ES5标准   遍历key值 索引
                    for of  --> ES6标准   遍历value值  对象
                    for of  ---> 只能用于数组的遍历
                    for in  ---> 不但可以用于数组的遍历,还可以用于遍历对象中的属性集
                 */
               /*
                    document.write()方法可以用于向页面插入一些内容,浏览器会按照HTML元素的顺序依次解析出来,                 并展示
                    注意:当文档一旦加载完毕, document.write()会覆盖以往的页面内容
                    也就是浏览器会重写document对象内容。
                */
            }
        // 此时不会覆盖
        document.write("<hr>");
        // 此时会覆盖
        window.onload = function () {
            document.write("<hr>");
        }
    备注:js中只能通过四种方式来获取页面中的元素document.getElementByXxx(),相对于js原生js来说jQuery获取页面元素的方式更加灵活,可以借助于css中的选择器来实现.




选择器
    ? 作用:筛选具有相似特征的元素标签.
    ? 基本操作:
        ○ 事件绑定:
            事件源(标签)+事件名称(具体事件)+监听器(实现的代码)
            示例代码:
            $("#zq").on("focus",function () {
                    //$("#zq").val("排球");
                    // this 指代的是当前操作的dom对象
                    this.value = "羽毛球";
              })
               $("#zq").on("blur",function () {
                    this.value = "棒球";
                })
               $("选择器").事件名称(function(){
                   ........
               });
        ○ 页面加载
            § 当页面加载的时候需要给事件源绑定事件以及做相关的业务,如果我们用原生js方式window.onload = function(),
                如果我们使用jQuery方式实现页面加载,方式:$(document).ready(function(){})
            § 在实际开发中我们一般使用他的简化版,格式:$(function(){});
            § 对比原生js方式区别: window.onload = function,如果原生js书写有多个,那么会出现覆盖效果.
                但是对于jquery来说可以书写多个页面载入函数--->入口函数
            § jQuery和原生js在进行页面加载的时候是有先后顺序的.jquery加载实际优先于原生js方式
        ○ 样式控制:css()方法  ---> style
            § 单个样式
                □ 语法格式:$("选择器").css("属性名","属性值");
            § 多个样式
                □ 语法格式:$("选择器").css({"属性名1":"属性值2";"属性名1":"属性值2";……})
            示例代码
                $(function () {
                            //document.getElementsByTagName("div")[0].style.backgroundColor = "red";
                            //$("div").get(0).css("background-color","red");
                            $("#div01").css("background-color","red");
                            //var css = $("#div01").css("background-color");
                            //alert(css);// rgb(0,128,0)
                            // 给第二个div设置背景色为灰色。高宽都为500ox,字体大小为30px,字体加粗
                            $("#div02").css({"backgroundColor":"gray","height":"500px","width":"500px","font-size":"30px",
                                "font-weight":"bolder"});
                });
        
    ? 分类
        ○ 五类:
        ○ 第一类基本选择器:
        1.id选择器:格式:$(#id值)  获取的是单个标签元素
        2.class选择器:格式$(.class值)获取指定的class属性值对应的标签元素
        3.标签选择器:格式$(标签名)获取的时候页面中所有匹配的标签
        4.并集选择器:格式$("选择器1","选择器2",…)获取的是匹配选择其中对应的标签元素
        5.交集选择器:格式${"选择器1""选择器2"…}获取的是匹同时满足多个选择器对应的标签元素
        ○ 第二类层级选择器:
        1.后代选择器:格式$("选择器1" "选择器2")获取选择器1内部的所有选择器对应的标签元素
        2.子选择器:格式${"选择器1">"选择器2"}获取选择器1内部的所有选择器2对应的直接子标签元素
        <div id = "one">
                <div class = "two">
                        <div class = "two">aaa</div>
                </div>
        </div>
        $("#one">".two")  ---> 获取的是 直接子元素  空格都可以设置
        <div class = "two">
                //获取不到<div class = "two">aaa</div>
        </div>
        
        $("div:even")----> one twoaaa
        $("div:odd")----> two
        
        ○ 第三类属性选择器:表单标签中使用较多
        1.属性选择器:格式:$("标签名[属性名=属性值]");获取的就是指定的属性名=属性值对应的标签元素
        2.复合属性选择器:格式:$("标签名[属性名=属性值][属性名=属性值]……") 获取同时满足多个属性名=属性值对应的标签元素.
        ○ 第四类过滤选择器:
        1.偶数选择器:格式:      :even,从0开始计数  索引  $("div:even") 索引0 2 4 6 8 --->对应的标签顺序 1 3 5 7 9……
        2.奇数选择器:格式:    :odd 奇数  从0开始计数  索引  $(div:odd)索引1 3 5 7 ---> 对应的标签顺序 2 4 6 8 ……
        3.大于索引选择器:格式:gt(索引值)  >
        4.小于索引选择器:格式:lt(索引值)  <
        5.等于索引选择器:格式:eq(索引值)  =
        ○ 第五类表单过滤选择器:
        1.可用元素选择器:格式:    :enabled  获取可用元素
        2.不可用元素选择器格式:    :disable  获取到不可用元素
        3.选中元素选择器格式:    :selected  获取到的是下拉列表中选中的元素
        4.选中元素选择器格式:    :checked  获取到的是互斥单选框或者复选框选中的元素





DOM操作
    ? 内容操作
    1.html()--->innerHtml   可以获取元素的内容,设置元素的内容   内容 = 文本内容/子标签
    2.text()--->innerTest  只能获取到标签的纯文本信息
    3.val()--->value   获取的是标签的value属性值
    ? 属性操作
    属性
    1.attr():获取指定的属性值,或者设置指定属性的属性值
    2.remove():把属性删除掉
    3.prop();获取与设置属性值
    4.removeProp:删除属性值
        attr和poop区别
            § 如果操作标签本身的属性建议使用prop
            § 如果操作的是自定义的属性,建议使用attr
    css类
    1.addClass();添加class属性值
    2.removeClass():删除class属性值
    3.toggleClass();切换class属性值,有就删除,没有就添加上
    示例代码:
    $(function () {
        //$("div").addClass("div01");
        /*  $("#inp01").on("click",function () {
               // dom对象
               //this.className = "div01";
               $("div").removeClass("div02");
               $("div").addClass("div01");
            });
            $("#inp02").on("click",function () {
              // dom对象
              //this.className = "div02";
              $("div").removeClass("div01");
              $("div").addClass("div02");
           });*/
        // toggleClass()  有就删除掉class属性值    没有就添加class属性值
        $("#inp01").on("click",function () {
            $("div").toggleClass("div01");// 开关技术
        });
      });
    ? 节点操作:CRUD
    1.添加节点
        ○ append():通过父元素将子元素添加到父元素内部的末尾
        格式:父元素对象(jQuery).append(子元素对象):将子元素对象添加到父元素对象内的末尾
        ○ prepend();通过父元素将子元素添加到父元素的头部
        格式:父元素对象(jQuery).prepend(子元素对象):将子元素对象添加到父元素对象内的头部
        ○ appendTo():通过子元素将自己添加到父元素内部并且位置在末尾
        格式:子元素对象.appendTo(父元素对象):将子元素自己添加到父元素内部并且位置在末尾
        ○ prependTo():用过子元素将自己添加到父元素的内部,位置在头部
        格式:子元素对象.prependTo(父元素对象):将子元素自己添加到父元素内部并且位置在头部
        ○ after();添加元素到指定元素的后面
        格式:对象1.after(对象2)--->将对象2放到对象1的后面,对象1和对象2是统计关系(兄弟关系)
        ○ before();添加元素到指定元素的前面--->添加元素到指定元素的前面
        格式:对象1.after(对象2)--->将对象2放到对象1的前面,对象1和对象2是统计关系(兄弟关系)
    2.删除节点
        ○ remove()删除元素
        格式:对象.remove();--->将此对象删除掉
        ○ empty();清空元素的所有后代元素
        格式:对象.empty();--->将此对象的所有后代元素全部清空,但是保留当前自己对象以及属性节点
    3.修改节点
    4.查询节点




this用法
如果在调用方法时,需要获取标签元素本身,可以在方法上设定参数为this,此时this表示是当前标签
    ? 对于标签添加onclick或者onmouse方法的时候,如果方法在<script>标签中直接定义的,那么在方法中获取的this指代的是当前窗口对象window,
    并不会指代当前对象本身.所以如果需要的话,直接在方法定义的时候直接使用this作为参数传递
    ? 如果在js中获取到了某个标签,然后给其绑定某个事件,对应的方法,此方法中的this指代的是这个对象本身
<input type="button" id="btn01"  value="添加人工智能专业" onclick="clickBtn(this)">
<input type="button" id="btn02"  value="添加大数据专业" onclick="clickBtn2()">
<input type="button" id="btn03" value="点我" />
<script>
    function clickBtn(obj) {
        alert(obj);// [object HTMLInputElement] 元素本身
    }

    function clickBtn2() {
        alert(this);// window对象
    }

    $("#btn03").on("click",function () {
        alert(this);// [object HTMLInputElement] 元素本身
    })
</script>



serialize()
概念:序列化  此时在jQuery中针对的是表单提交.
通过这个方法一次性获取到表单中所有的值,申城一个字符串,格式为:username=张三&password=123456&age=18&……

 

 

java jQuery

原文:https://www.cnblogs.com/shangjinshuai/p/14293970.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!