jQuery 基础小结

什么是jQuery

jQuery 是一个 JavaScript 库 极大地简化了 JavaScript 编程

引入方式

建议下载类库 进行本地引入 下载地址 http://jquery.com/download/
< script type=”text/javascript” src=”../JQuery/jquery-3.3.1.js”>< /script>

JQuery 示例

<div id="d1"></div>
        <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            /*核心函数: jQuery 简写形式$
             * $(function) 是 $(document).ready(function(){})的简写形式, 表示当页面中的DOM结构加载完毕时
             * $(选择器) 获取对应选择器的元素 返回的是jquery对象
             * $(html标签形式字符串) 创建DOM元素
             * $(html元素对象) 将原生js对象转为jQuery对象
             */
            $(function(){
                //jquery code
            });
            //注: 为了避免文档在完全加载之前运行jquery代码,建议在ready函数中书写jquery代码
            /*区别window.onload:
             * 1.时机不同: onload是当所有资源(DOM,图片,音视频)加载完毕; 而ready是当DOM加载完毕时
             * 2.onload是原生js中的, 而ready是jquery中的方法
             * 3.onload一个页面只能触发一次(只能出现一次), 而ready可以同时出现多次, 都可以触发执行
             */
            //获取元素
            $("#d1");
            $(".d2");
            $("#list>li");
            //创建元素
            $("<div></div>");
            //原生对象转为jQuery对象
            //若要使用jQuery中提供的方法, 需要转为jQuery对象后才能调用
            $(document);
        </script>

强大的基础选择器

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="../JQuery/jquery-3.3.1.js"></script>
    <style media="screen">
      .item {
        width: 100px;
        height: 100px;
        background-color: red;
      }
    </style>
  </head>
  <body>
    <div class="item">1</div>
    <div class="item">2</div>
    <p>
      <ol>
        <li>Hello</li>
      </ol>
    </p>
    <p>How are you?</p>
  </body>
  <script type="text/javascript">
    // JQuery
    // 获取元素
    // $("选择器") 获取和选择器相匹配的元素
    $(".item").css("color", "white");
    // 设置多个属性 参数是对象
    $(".item").css({
      "background-color": "green",
      "margin-left": "50px",
      "border": "1px red solid"
    })
    $(".item").css("width", function(index, oldValue) {
      console.log(index, oldValue);
      return (index + 1) * 100;
    })
    // 获取元素属性 只能获取第一个
    // 设置元素属性 是对所有的元素生效
    console.log($(".item").css("width"));
    // 修改内容
    // $("p").text("CLANNAD");
    // $("p").text(function() {
    //   return "after story";
    // });

    // 通过JQ的选择器获取到的是JQ对象
    // 通过原生方法获取的是原生对象
    // JQ对象只能调用JQ的方法 原生对象只能调用原生的方法 但是JQ 可以和 JS 混编
    // 原生对象 -> JQ 对象
    var item = document.getElementsByClassName("item")[0];
    $(item).css("color", "red")
    // JQ对象 -> 原生对象
    $(".item")[1].innerHTML = "JQ转原生"
    $(".item").get(0).innerHTML = "JQ转原生"

    // JQ里获取第几个元素 eq 获取到的是JQ对象
    $(".item").eq(0).html("这是第一个")

    // 破坏性操作和回到破坏性操作之前
    // end()

    // 移交$的控制权
    // jQuery(".item") 等价于 $(".item")
    // var james = jquery.noConflict();  从此以后不再使用 $ 代表 jQuery 取而代之的是 james

    //创建元素
    $("<div></div>").html("新的JQ对象").appendTo($("body"))

    //  A.append(B) A里面添加B A是父级
    //  A.appendTo(B) 把A加到B里面 B是父级
    // A.after(B) A后面添加B A在前面
    // A.insertAfter(B) 把A插入到B后面 B在前面

    // 删除元素
    // remove() 删除元素 同时清空绑定的事件
    // empty() 删除元素内容 元素本身还在
    // detach() 删除元素 不清空绑定事件
    $("p").filter(function(index) {
      return $("ol", this).length == 0;
    });
    // JQ对象设置属性
    // attr 设置的属性都会被添加到标签上 也能读取到标签上的自定义属性 prop不能!
    // prop 可以读取到原生对象的自带属性和自定义属性 attr不能
    $(".item").attr("title", "这是提示")
    $(".item").prop("title", "这是提示")
  </script>

</html>

强大的CSS样式操作

<body>
        <input type="text" />
        <img src=""/>
        <input type="checkbox" name="" id="" checked />
        <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            /*attr("属性名", 属性值 | 函数) 设置元素对应属性为对应属性值
             * attr("属性名") 获取对应属性的值
             * 
             * prop("属性名", 属性值 | 函数) 设置元素对应属性为对应属性值
             * prop("属性名") 获取对应属性的值
             * 
             * removeAttr("属性名")
             * removeProp("属性名")
             */
            /*两种方式的区别:
             * attr() 常用于操作元素的自定义属性,也可以操作自带属性
             * prop() 常用于操作元素的自带属性
             * 当操作的是布尔值类型的属性时,使用prop()
             */
            $(function() {
                //添加一个属性
                $("input:eq(0)").attr("placeholder", "请输入");
                //可同时添加多个属性: 以对象形式设置
                $("img").attr({
                    src: "http://p3.ifengimg.com/a/2018_10/99fc62f2a0b668c_size53_w552_h552.jpg",
                    width: 300,
                    height: 400
                });
                //attr("属性名") 获取对应属性的值
                console.log($("img").attr("src"));

                //参数2也可以是函数 该函数有两个参数,分别表示下标以及对应属性原来的值, 必须返回对应的属性值
                $("img").attr("height", function(i, v) {
                    console.log(i,v);
                    return 300;
                });

                //添加一个属性
                $("input:first").prop("placeholder", "=.=");
                //添加多个属性
                $("img").prop({
                    width: 100,
                    height: 100,

                });
                //区别: 当要获取元素的自带属性是布尔类型的值时, 通过attr无法正常获取布尔值, 该场景下使用prop获取元素布尔类型的属性值
                console.log($(":checkbox").attr("checked"));
                console.log($(":checkbox").prop("checked"));
            });
        </script>
    </body>

更多的方便的操作请参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值