JQuary(从原生js到jq,就发现jq好简单)

1.jQuery介绍

jQuery是一个优秀的JavaScript库,以最少的代码实现更多的功能

  • 特点:

    1.强大的选择器的功能  $("selector")
    2.语法简介  $("selector").action()
    3.隐式迭代  $("div").click();   //5个div会自动循环添加点击事件
    4.链式操作  $("").操作1().操作2().操作3()
    5.兼容性好

2.使用

2.1 引入

下载:
   https://jquery.com/  官网
   https://www.jquery123.com/ 中文
版本:
   2.0以下版本  : 使用版本  2.0以上不兼容IE
引入:
   本地下载好的jQuery文件
   网上CDN上的jQuery文件
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<!-- 引入下载好的本地jQuery -->
    <!-- <script src="./js/jquery-3.6.0.js"></script> -->
​
<!-- 引入在线的  CDN:内容分发网-->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script>
        // 特点1:语法简介  $("选择器").方法();
        // 特点2:强大选择器功能  所有css中能使用选择器,在jQuery中都可以使用
        // 特点4:简化html文档操作,动画效果,ajax,事件
        $(".box").css({"width":100,"height":100,"background":"red"});
        // 特点3:隐式迭代
       $(".box").click(function(){
       // 特点5:链式操作  $().css(操作1)....
      $(this).css({"background":"teal"}).siblings().css({"background":"red"})
});
</script>

2.2 $的作用

jQuery.js文件   创建了一个jQuery对象,在这个对象上封装了各种方法
window.jQuery = window.$ = jQuery

2.3 jQuery加载方法

// 等文档和资源都加载完成后调用
// window.onload = function () {
//     var oDiv = document.getElementsByTagName("div")[0];
//     oDiv.onclick = function () {
//         alert("点击");
//     }
// }
// window.onload = function () {
//     var oDiv = document.getElementsByTagName("div")[0];
//     oDiv.onmouseover = function () {
//         alert("移入");
//     }
// }
​
​
//jQuery的加载方法
$(document).ready(function () {
    $("div").click(function () {
        console.log("点击");
    })
});
​
$().ready(function () {
    $("div").mouseover(function () {
        console.log("移入");
    })
});
​
$(function(){
    $("div").mouseout(function () {
        console.log("移出");
    })
});
​
/* 
         window.onload  和  $().ready()区别
         window.onload 
            等文档和资源加载完成后调用
            添加多次后面的会覆盖前面的
         $().ready()
            等文档加载完成后调用
            添加多次,会叠加
        */

注意window.onload 和 $().ready()区别

2.4 jQuery对象和DOM对象的关系

  • 可以共存

    //jQuery和js 可以共存
    $("div").css({ "width": 200, "height": 200, "background": "gold" });
    var oDiv = document.getElementsByTagName("div")[0];
    oDiv.style.background = "teal";

  • 不能混用

    //不能混用
    //oDiv.css({"width":100});
    //$("div").style.width = "100px";

  • 可以相互转换

    //可以相互转换
    console.log(oDiv);  //DOM对象  标签  元素集合  节点列表
    console.log($("div")); //jQuery对象
    ​
    //DOM对象----》jQuery对象   $(DOM)
    console.log($(oDiv)); //jQuery.fn.init [div]
    ​
    //jQuery对象----》转DOM对象
    console.log($("div")[0]);

3.jQuery选择器

3.1 基本选择器

$(function(){
    //id:  $("#id")  获取到对应id名的标签
    $("#middle").css({"background":"pink"});
​
    //class : $(".class名")  获取到对应class名的标签
    $(".box").css({"background":"teal"});
​
    //元素  jQuery中选择器没有优先级,只有先后顺序
    $("li").css({"background":"orange"});
​
    //分组  元素,元素
    $("p,span").css({"color":"green"});
​
​
    //添加事件
    $("li").click(function(){
        console.log(this); //<li></li>  DOM元素     $(this)--转jQuery
        $(this).css({"background":"teal"});
        //$().index("selector") : 給当前元素的父元素的所有子元素添加下标
        console.log($(this).index());;
        console.log($(this).index("li"));;
    });
});

3.2 层次选择器

//后代选择器 
$("div span").css({"color":"red"});
​
//子代选择器
$("div>span").css({"color":"teal"});
​
//+:相邻兄弟选择器
$("p+span").css({"color":"orange"});
//~: 后面所有的
$("p~span").css({"color":"orange"});

3.3 基本过滤选择器

//:位置
$("li:first").css("background","red");
$("li:last").css("background","red");
$("li:nth-child(2n)").css("background","red");
$("li:nth-child(2n+1)").css("background","pink");
$("li:odd").css("background","red");  //奇数
$("li:even").css("background","pink"); //偶数
​
//:eq(下标) : 从0开始
$("li:eq(2)").css("background","red");
var index = 3;
$("li").eq(index).css("background","pink");
​
//not(选择器)  : 除了
$("li:not(.box)").css("background","pink");
$("li").not(".box").css("background","pink");
​
​
//gt():获取下标大于n   lt():获取下标小于n
$("li:lt(3)").css("background","red");
$("li:gt(2)").css("background","#ccc");

3.4 属性过滤选择器

//E[attr]:匹配有attr属性的E标签
$("div[class]").css("background", "pink");
​
//E[attr=value]:匹配有attr属性并且值位value的E标签
$("div[class=box2]").css("background", "red");
​
//E[attr!=value]:匹配有attr属性并且值不为value的E标签
$("div[class!=box2]").css("background", "teal");
​
//E[attr^=value]:匹配有attr属性并且值以value开头的E标签
$("div[class^=b]").css("background", "teal");
​
//E[attr$=value]:匹配有attr属性并且值以value结尾的E标签
$("div[class$=4]").css("background", "orange");
​
//E[attr*=value]:匹配有attr属性并且值包含value的E标签
$("div[class*=s]").css("background", "deeppink");

3.5 表单选择器

//表单选择器
console.log( $(":input")); //获取的是所有的表单元素   (input button textarea select)
​
// :input的type类型,获取到具体类型的input
console.log($(":text")); //文档框
console.log($(":radio")); //单选框
​
//:checked : 获取选择框被选中的标签
console.log( $(":checkbox:checked"));
console.log( $(":checkbox:checked").length);

注意常用选择器:id,元素,class,分组,后代,子代,eq必须要掌握

4.jQuery操作标签属性

4.1操作标签属性

  • 原生js操作标签属性: 标签.属性名 = “属性值"

  • DOM操作标签属性

    • 设置:标签.setAttribute("属性名","属性值")

    • 获取:标签.getAttribute("属性名")

    • 删除:标签.removeAttribute("属性名")

  • jQuery操作标签属性

    • $().attr() : 操作自定义属性(一般使用这个,自定义和固有都能操作)

      -设置:$().attr("属性名","属性值") (js取值赋值一体)

      -获取:$().attr("属性名")

      -删除:$().removeAttr("属性名")

    • $().prop() :操作固有属性 (input标签的checked属性,就必须使用prop)

      -设置:$().prop("属性名","属性值") (js取值赋值一体)

      -获取:$().prop("属性名")

      -删除:$().removeProp("属性名")

    //-设置:$().attr("属性名","属性值")
    $("div").attr("id","active");
    ​
    //-获取:$().attr("属性名")
    console.log($("div").attr("index")); //1
    ​
    //删除:$().removeAttr("属性名"
    $("div").removeAttr("class");
    ​
    ​
    //区别 如果属性值是true false的情况下,使用prop操作属性
    console.log($("input").attr("checked")); //checked  undefined
    console.log($("input").prop("checked")); //true false
    $("input").prop("checked",false);

4.2 操作class属性

//1.$().addClass("类名") : 追加class
$(this).addClass("active");
​
//2.$().removeClass("类名"):删除对应的class
$(this).removeClass("active");
​
//3.$().hasClass("类名")  : 判断当前元素是否存在某个类名,有返回true,不存在返回false
if($(this).hasClass("active")){ //有
    $(this).removeClass("active");
}else{ //没有
    $(this).addClass("active");
}
​
​
//4. $().toggleClass("类名") : 开关,如果当前有这个class就删除,没有就添加
$(this).toggleClass("active");

5.jQuery操作标签内容

  • 原生js

    • 表单元素:标签.value

    • 闭合标签:标签.innerHTML/innerText 操作闭合标签内容,覆盖原有内容,innerHTML识别标签,innerText不识别标签

  • jQuery

    • 表单元素: $().val();

    • 闭合元素: $().html()/text();

//1.设置表单元素:$().val("值")
$("input").val("黄河入海流");
$(window).keydown(function(ev){
    if(ev.keyCode == 13){
        //2.获取表单元素内容:$().val()
        var v = $("input").val();
        console.log($("input").val());
​
        //3.获取闭合元素内容 $().html()
        console.log($("div").html()); //   <p>白日依山尽</p>
        console.log($("div").text()); //    白日依山尽
​
​
        //4.设置闭合元素内容 $().html();
        //  $("div").html(v);  //会覆盖之前的
        $("div").html($("div").html()+"<p>"+v+"</p>");  //会覆盖之前的
        //  $("div").text($("div").html()+"<p>"+v+"</p>");  //会覆盖之前的
    }
})

6.操作标签样式

  • 原生js:标签.style.属性名 = 属性值

  • jQuery:$().css()

 //1.写单个样式 $().css("属性名","属性值")
$("div").css("background","pink");
​
//2.写多个样式 $().css({"属性名":"属性值"})
$("div").css({
    "width":200,  //属性值数是数字的话, number,string(要加单位)
    "height":"200px",
    "margin-top":"200", //设置无效
    "height":"hahahah", //給的不对,不报错,只是不给标签设置,相当于这行代码无效
    marginLeft:"200px" //对象key可以不加引号,如果是复合属性,使用驼峰标识
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值