首页 > 编程语言 >javaweb7

javaweb7

时间:2022-12-14 23:34:41浏览次数:72  
标签:jQuery 标签 元素 selector 获取 javaweb7 属性

JQuery

1.介绍

1.1web前端知识点回顾

  1. HTML决定了网页的内容
  2. CSS决定了网页样式
  3. JavaScript决定了网页的功能
    1. 标签属性,样式的操作
    2. DOM节点的操作
    3. 异步交互的操作
  4. 但是在使用JS完成对应的功能时,需要程序员自己完成代码的编写,开发相对来说函数比较繁琐的,所以引入了JQuery的概念

1.2JQuery是什么?

  • JQuery是一个JavaScript的框架,简化了JS的语法和操作
    • 定义了HTML属性操作,样式操作,DOM操作等相关函数
    • 实现了对Ajax异步请求的封装
  • JQuery提供了很多预定义函数的JS文件

2.入门示例

2.1下载JQuery函数库

  1. 打开JQuery官网:https://jquery.com/

  2. 点击下载image-20221213203635576

  3. 选择下载的版本

    image-20221213204246894

  4. 选一个点击

  5. Ctrl+s保存

2.2y引入

2.2.1本地文件引入(需要下载jQuery文件)

  1. 将jQuery文件粘贴到web项目中

  2. 在html(jsp)文件中通过script标签引入jQuery文件

    <!--src="jQuery文件路径"-->
    <script type="text/javascript" src="jQuery/jquery-3.6.1.js"></script>
    

2.2.2CDN引入(不需要下载jQuery文件,需要联网)

  • CDN内容分发网络,将jQuery.js文件提前部署到一个服务器,我们可以通过jQuery文件在服务器上的访问路径来引入此jQuery.js文件

  • jQuery官方提供的CDN地址

  • 非压缩版本:https://code.jquery.com/jquery.版本号.js

    例:
    https://code.jquery.com/jquery-3.6.1.js
    
  • 压缩版本:https://code.jquery.com/jquery.版本号.min.js

    例:
    https://code.jquery.com/jquery-3.6.1.min.js
    
  • 在html(jsp)文件中通过script标签引入jQuery文件

    <!--src="jQuery文件地址"-->
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.1.js"></script>
    

2.3示例

  • <%@ page contentType="text/html;charset=UTF-8" %>
    <html>
    <head>
        <title>JQuery</title>
        <%--引入jQuery--%>
        <script type="text/javascript" src="jquery-3.6.1.js"></script>
    </head>
    <body>
    <%--隐藏按钮--%>
    <button id="bt">点击我就消失</button>
    <script type="text/javascript">
        //点击按钮隐藏按钮
        $("#bt").click(function (){
            $("#bt").hide();
        });
    </script>
    </body>
    </html>
    

3.API

3.1核心函数

  • jQuery可以简写为$

  • jQuery():用于获取HTML文档中的元素

    1. jQuery([selector],[context]]):根据特定的选择器从HTML文档中获取元素

      jQuery("#xx"); id选择器:获取当前文档id=xx的元素jQuery(".xx"); 类选择器:获取当前文档class=xx的元素
      
    2. jQuery(html,[ownerCocument]):创建一个新的HTML元素

      jQuery("<button>创建一个按钮</button>">;
      
    3. jQuery(fn):表示当html文档加载完毕再执行fn,等价于jQuery(document).ready(fn)

      jQuery(function(){
      	alter("你好");
      });	网页文档加载完毕之后跳出一个弹窗显示你好
      
  • $(selector).事件(fn):当选择器选择的元素发生事件就执行fn

    //当前文档加载完毕执行fn
    $(document).ready(fn);
    //当id=bt的元素发生点击事件就执行fn
    ${"#bt").click(fn);
    

3.2选择器

3.2.1基本选择器

  1. $("#xx"):id选择器

    //获取当前文档id=btn的元素
    $("#but")
    
  2. $(".xx"):类选择器

    //获取当前文档class=ims的元素
    $(".imgs")
    
  3. $("标签"):标签选择器

    • //获取当前文档标签为img的元素
      $("img)
      

3.2.2复合选择器

  1. 多个基本选择器通过特定的符号进行连接,以实现更为精准的选择

  2. $("selector1 selector2"):选择所有selector1匹配的元素里面的匹配selector2的元素

    $("input .input2");获取input标签中class为input2的元素
    
  3. $("selector1,selector2"):选择所有匹配selector1和selector2的元素

    $("input,img");获取所有的input标签和img标签的元素
    
  4. $("selector1>selector2"):选择selector1元素的子标签selector2

    //例
    <form action="">
      <input type="text" name="input1">
        <input type="text" name="input2">
    </form>
    $("form>input");获取form标签下的直接子标签input元素
    结果:获取input1元素
    input2是input1的子标签,是form的孙子标签,所以不能获取
    
  5. $("selector1+selector2"):选择所有紧挨着在selector1后面的selector2元素

    <label ></label>
    <input name="input1">
      <label ></label>
      <input name="input2">
    <label ></label>
    <p></p>
    <input name="input3">
    $("label+input");获取所有label标签后面紧挨着的input标签
    结果:获取input1和input2元素
    input3不在label后面紧挨着,所以不能获取
    
  6. $("selector1~selector2"):选择所有在selector1后面的selector2元素

    <label ></label>
    <input name="input1">
      <label ></label>
      <input name="input2">
    <label ></label>
    <p></p>
    <input name="input3">
    $("label+input");获取所有label标签后面的input标签
    结果:所有input的标签都能获取
    跟+的唯一区别就是不用紧挨着
    

3.2.3选择器筛选

  • 在选择器匹配的元素中,根据特点的筛选条件(索引,属性)更灵活的选择要操作的元素

    语法 说明
    $("selector:first") 匹配selector选择的所有元素中的第一个
    $("selector:last") 匹配selector选择的所有元素中的最后一个
    $("selector:odd") 匹配selector选择的所有元素中的索引为奇数(1,3,5,7...)的元素
    $("selector:even") 匹配selector选择的所有元素中的索引为偶数(0,2,4,6...)的元素
    $("selector:eq(index)") 匹配selector选择的所有元素中的索引为index的元素
    $("selector:lt(index)") 匹配selector选择的所有元素中的索引小于index的元素
    $("selector:gt(index)") 匹配selector选择的所有元素中的索引大于index的元素
    $("selector[属性名=属性值]") 匹配selector选择的所有元素中属性名等于属性值的元素
    $("selector[属性名!=属性值]") 匹配selector选择的所有元素中属性名不等于属性值的元素
    $("selector[属性名!=属性值]");
    <input name="input1">
    <input name="input1">
    <input name="input2">
    $("input[name!=input1]");
    匹配所有input标签中name不等于input1的元素
    结果:获取了input2元素
    

3.3筛选函数

  • 选择器筛选的函数化

  • 筛选函数 说明
    $("selector").first() 相当于$("selector:first")
    $("selector").last() 相当于$("selector:last")
    $("selector").eq(index) 相当于$("selector:eq(index)")
    $("selector").hasClass("class元素名") 判断当前文档中的selector中是否有class元素名这个元素
    $("selector").is(tag) 判断当前文档中的selector是否指定为tag元素

3.4属性操作函数

  1. 对HTML标签进行属性操作的一组函数

  2. attr():获取/设置元素的属性值(不能获取value的属性值)

    //只有一个参数时为获取
    例:$("img").attr("src");	获取img标签中src的属性值
    //两个参数时为设置(更改)
    例:$("img").attr("src","img02.png");
    将img标签中src的属性值改为img02.png
    
  3. val():获取/设置value的属性值

    //没有参数时为获取
    例:$("input").val();	获取input标签中value的属性值
    //一个参数时为设置(更改)
    例:$("input").attr("按钮");
    将input标签中value的属性值改为按钮
    
  4. removeAttr():移除元素的属性值

    例:$("img").removeAttr("src");
    移除img标签中src的属性值
    
  5. prop{}:批量设置元素的属性值

    例:$("img").prop{src:"img02.png",width:200,alt:"批量设置");
    可以批量设置元素的属性值(用大括号括起来)
    
  6. addClass():为元素class属性添加一个样式名

    例:<div id="d" class="style2 style3">JQ</div>
    可以使用addClass函数再添加class属性(在css中定义好的)
    $("#d").addClass("style1");
    结果:class属性中有style1,2,3三个css定义好的样式
    
  7. removeClass():删除元素class属性中指定的样式名

    例:<div id="d" class="style2 style3">JQ</div>
    可以使用removeClass函数删除指定的class属性(在css中定义好的)
    $("#d").removeClass("style2");
    结果:class属性中只剩下style3这一个css定义好的样式
    
  8. toggleClass():从元素的属性中添加/移除指定的样式名(有则删,无则加)

    例:<div id="d" class="style2 style3">JQ</div>
    可以使用toggleClass函数删除/添加指定的class属性(在css中定义好的)
    $("#d").toggleClass("style2");
    结果:如果class中有style2这个样式名,则移除这个样式,如果没有,则添加
    
  9. text():将参数以文本的形式设置到选择器匹配的元素的里面(不会识别HTML标签)

  10. html():将参数以HTML标签的形式设置到选择器匹配的元素的里面,并且参数的内容会被浏览器解析为HTML标签,显示对应的标签效果

3.5CSS操作函数

  1. css():获取/设置标签的样式

    //设置单个标签
    例:$("#div").css("width","200px");
    //设置多个标签(用逗号隔开)
    例:$("#div").css({width:"100px",height:"100px"});
    //获取属性的属性值
    例:$("#div").css("width");
    
  2. position():获取标签的位置信息

    //获取全部位置信息
    例:var 对象名 = $("#div").position();
    获取id为div的标签的全部位置信息
    //获取顶部位置信息(需要获取全部位置信息并且接收返回值)
    例:对象名.top
    获取id为div的标签的top位置信息
    //获取左边位置信息(需要获取全部位置信息并且接收返回值)
    例:对象名.left
    获取id为div的标签的left位置信息
    
  3. 获取尺寸的函数

    1. width()/height()

    2. innerWidth()/innerHeight()

    3. outerWidth()/outerHeight()

      image-20221214121952860

3.6文档处理函数

  • DOM操作

3.6.1添加子节点

  • parent.append(child)/child.appendTo(parent):在父节点(parent)中拼接子节点(child),子节点会添加到父节点中的最后

    child可以是一个HTML标签字符串,表示新建一个HTML元素拼接到parent
    child也可以通过选择器选择当前文档中的元素(被选择的元素会发生移动)
    例:$("#div").append("<img src="img02.png");
    等价于$("<img src="img02.png">.appendTo($("#div"));
    

3.6.2插入节点

  • before/insertBefore:在某个元素前插入另外一个元素

    div1.before(div2);在div1的前面插入div2
    等价于div2.insertBefore(div1);将div2插入到div1之前
    
  • after/insertAfter:在某个元素后插入另外一个元素

    div1.after(div2);在div1的后面插入div2
    等价于div2.insertAfter(div1);将div2插入到div1的后面
    

3.6.3替换节点

  • div1.replaceWith(div2):将div1的元素替换为div2

3.6.4删除节点

  • parent.empty():清空parent节点下的所有子节点
  • node.remove():清除当前(node)节点

3.6.5节点包裹

  • node1.wrap(node2):使用node2将node1包裹起来
  • node.unwrap():删除node的父节点

3.7事件函数

  • 为页面中的元素绑定事件

3.7.1ready

  • ready():HTML文档加载完毕触发执行

3.7.2焦点事件

  • blur(): 元素失去焦点时触发

    例:鼠标点击输入框(元素)然后移除输入框,即元素失去焦点,触发blur事件

  • focus(): 元素获取焦点时触发

    例:鼠标点击输入框(元素),即元素获取焦点,触发focus事件

3.7.3鼠标事件

  • mouseDown():鼠标左键点击时触发
  • mouseUp():鼠标左键松开时触发
  • mouseEnter():鼠标指针穿过元素时触发
  • mouseLeave():鼠标离开元素时触发(离开元素的子元素不会触发)
  • mouseOut():鼠标离开元素时触发(离开元素的子元素同样也会触发)
  • mouseOver():鼠标指针移到元素上时触发
  • mouseMove():鼠标指针在元素上移到时触发

3.7.4键盘事件

  • keyDown():按键按下时触发
  • keyUp():按键松开时触发

3.7.5点击事件

  • click():鼠标单击元素时触发
  • dbclick():鼠标双击元素时触发

3.7.6内容改变

  • change():内容被改变时触发

3.7.7打开/关闭事件

  • off("事件名称"):关闭元素的事件

  • on("事件名称"):重新打开元素的事件

    重新打开的事件需要编写打开的事件
    例:重新打开change事件
    $("#div").on("change",function(){
        重新打开事件的事件
        )};
    

3.7.8获取事件对象

  • 每个事件对象的function都可以有参数,将参数打印即可得到事件的对象
  • $(this):表示发生事件的元素

3.8效果函数

  • 显示与异常或者动画效果

3.8.1显示与隐藏

  1. 以下函数都可以设置参数(速度的快慢)
    1. 参数可以为fast,slow,normal等单词
    2. 也可以是具体的毫秒值等
  2. 瞬间效果的隐藏和显示
    1. hide():隐藏元素
    2. show():显示元素
    3. toggle():如果是显示则隐藏,如果是隐藏则显示(具有瞬间效果)
  3. 有缩放效果的显示和隐藏
    1. slideUp():显示元素(向上缩小,直到没有)
    2. slideDown():隐藏元素(向下放大)
    3. slideToggle():如果是显示则隐藏,如果是隐藏则显示(具有缩放效果)
  4. 淡化效果的显示和隐藏
    1. fadeIn():显示元素(从没有到模糊再到清晰)
    2. fadeOut():隐藏元素(从清晰到模糊再到没有)
    3. fadeToggle():如果是显示则隐藏,如果是隐藏则显示(具有淡化效果)
    4. fadeTo():将元素的透明度改变到指定的值
      1. 参数一:速度的快慢
      2. 参数二:透明度

3.8.2动画

  • animate():让一个元素通过改变属性值来改变效果
    1. 参数一:params:一组包含作为动画属性的最终样式属性和值的集合
    2. 参数二:speed:转换到最终动画的时间
    3. 参数三:easing:使用擦除效果的名次(需要插件支持),默认jQuery提供的linearswing
    4. 参数四:fn:动画完成时执行的函数,每个元素执行一次
  • stop():让执行中的动画停止,并且保留当前的状态

3.9Ajax函数

  • ajax()
    1. url:Ajax请求的目标服务器地址
    2. type:指定请求的方式
    3. heades:设置请求头的参数
    4. data:传递的参数(post方法才可以使用,相当于send中的post)
    5. contentType:请求信息的转码方式
    6. processData:设置数据是否压缩传输
    7. success:function(res):Ajax请求成功之后执行的回调函数
      • res表示服务器返回的数据
    8. error:function(res):Ajax请求出现错误执行的回调函数
      • res表示服务器返回的异常信息对象
  • get/post():发送get/post方式提交的Ajax请求
    1. 参数一:url
    2. 参数二:传递的参数
    3. 参数三:回调函数
    4. 参数四:服务器返回的数据的格式

标签:jQuery,标签,元素,selector,获取,javaweb7,属性
From: https://www.cnblogs.com/Myvlog/p/16983959.html

相关文章