jQuery 属性操作

jQuery——jQuery的CSS,class,属性操作及案例应用 文章目录CSS操作class操作css与class操作综合案例:tab栏属性操作prop方法prop表格全选案例案例:美女画廊 CSS操作 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>张欣欣< 阅读详情

jQuery 属性操作

Date: February 28, 2023
Sum: jQuery属性操作、文本属性值、元素操作、尺寸、位置操作


jQuery 属性操作

设置或获取元素固有属性值 prop()

所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。

1. 获取属性语法

prop("属性")

2. 设置属性语法

prop("属性", "属性值")


设置或获取元素自定义属性值 attr()

用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。

1. 获取属性语法

attr("属性")      // 类似原生 getAttribute()

2. 设置属性语法

attr("属性", "属性值")   // 类似原生 setAttribute()

改方法也可以获取 H5 自定义属性



数据缓存 data()

data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。

1. 附加数据语法

data("name","value")   // 向被选元素附加数据

2. 获取数据语法

date("name")             //   向被选元素获取数据

同时,还可以读取 HTML5 自定义属性 data-index ,得到的是数字型

  • Code:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="jquery.min.js"></script>
    </head>
    
    <body>
        <a href="http://www.itcast.cn" title="都挺好">都挺好</a>
        <input type="checkbox" name="" id="" checked>
        <div index="1" data-index="2">我是div</div>
        <span>123</span>
        <script>
            $(function() {
                //1. element.prop("属性名") 获取元素固有的属性值
                console.log($("a").prop("href"));
                $("a").prop("title", "我们都挺好");
                $("input").change(function() {
                    console.log($(this).prop("checked"));
                });
                // console.log($("div").prop("index"));
                // 2. 元素的自定义属性 我们通过 attr()
                console.log($("div").attr("index"));
                $("div").attr("index", 4);
                console.log($("div").attr("data-index"));
                // 3. 数据缓存 data() 这个里面的数据是存放在元素的内存里面
                $("span").data("uname", "andy");
                console.log($("span").data("uname"));
                // 这个方法获取data-index h5自定义属性 第一个 不用写data-  而且返回的是数字型
                console.log($("div").data("index"));
            })
        </script>
    </body>
    
    </html>
    


案例:购物车案例模块-全选

  1. 全选思路:里面3个小的复选框按钮(j-checkbox)选中状态(checked)跟着全选按钮(checkall)走。
  2. 因为checked 是复选框的固有属性,此时我们需要利用prop()方法获取和设置该属性。
  3. 把全选按钮状态赋值给3小复选框就可以了。
  4. 当我们每次点击小的复选框按钮,就来判断:
  5. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
  6. :checked 选择器 :checked 查找被选中的表单元素。
  • Code:

    $(function() {
        // 1. 全选 全不选功能模块
        // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
        // 事件可以使用change
        $(".checkall").change(function() {
            // console.log($(this).prop("checked"));
            $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
            if ($(this).prop("checked")) {
                // 让所有的商品添加 check-cart-item 类名
                $(".cart-item").addClass("check-cart-item");
            } else {
                // check-cart-item 移除
                $(".cart-item").removeClass("check-cart-item");
            }
        });
        // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
        $(".j-checkbox").change(function() {
            // if(被选中的小的复选框的个数 === 3) {
            //     就要选中全选按钮
            // } else {
            //     不要选中全选按钮
            // }
            // console.log($(".j-checkbox:checked").length);
            // $(".j-checkbox").length 这个是所有的小复选框的个数
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
            if ($(this).prop("checked")) {
                // 让当前的商品添加 check-cart-item 类名
                $(this).parents(".cart-item").addClass("check-cart-item");
            } else {
                // check-cart-item 移除
                $(this).parents(".cart-item").removeClass("check-cart-item");
            }
        });
        // 3. 增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
        $(".increment").click(function() {
            // 得到当前兄弟文本框的值
            var n = $(this).siblings(".itxt").val();
            // console.log(n);
            n++;
            $(this).siblings(".itxt").val(n);
            // 3. 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
            // 当前商品的价格 p  
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            console.log(p);
            var price = (p * n).toFixed(2);
            // 小计模块 
            // toFixed(2) 可以让我们保留2位小数
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
            getSum();
        });
        $(".decrement").click(function() {
            // 得到当前兄弟文本框的值
            var n = $(this).siblings(".itxt").val();
            if (n == 1) {
                return false;
            }
            // console.log(n);
            n--;
            $(this).siblings(".itxt").val(n);
            // var p = $(this).parent().parent().siblings(".p-price").html();
            // parents(".p-num") 返回指定的祖先元素
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            console.log(p);
            // 小计模块 
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
            getSum();
        });
        //  4. 用户修改文本框的值 计算 小计模块  
        $(".itxt").change(function() {
            // 先得到文本框的里面的值 乘以 当前商品的单价 
            var n = $(this).val();
            // 当前商品的单价
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
            getSum();
        });
        // 5. 计算总计和总额模块
        getSum();
    
        function getSum() {
            var count = 0; // 计算总件数 
            var money = 0; // 计算总价钱
            $(".itxt").each(function(i, ele) {
                count += parseInt($(ele).val());
            });
            $(".amount-sum em").text(count);
            $(".p-sum").each(function(i, ele) {
                money += parseFloat($(ele).text().substr(1));
            });
            $(".price-sum em").text("¥" + money.toFixed(2));
        }
        // 6. 删除商品模块
        // (1) 商品后面的删除按钮
        $(".p-action a").click(function() {
            // 删除的是当前的商品 
            $(this).parents(".cart-item").remove();
            getSum();
        });
        // (2) 删除选中的商品
        $(".remove-batch").click(function() {
            // 删除的是小的复选框选中的商品
            $(".j-checkbox:checked").parents(".cart-item").remove();
            getSum();
        });
        // (3) 清空购物车 删除全部商品
        $(".clear-all").click(function() {
            $(".cart-item").remove();
            getSum();
        })
    })
    



jQuery 文本属性值

主要针对元素的内容还有表单的值操作。

1. 普通元素内容 html()( 相当于原生inner HTML)

html()             // 获取元素的内容
html("内容")   // 设置元素的内容

2. 普通元素文本内容 text() (相当与原生 innerText)

text()            // 获取元素的文本内容
text("文本内容")   // 设置元素的文本内容

3. 表单的值 val()( 相当于原生value)

val()              // 获取表单的值
val("内容")   // 设置表单的值


案例:购物车案例模块

增减商品数量分析:

  1. 核心思路:首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
  2. 注意1: 只能增加本商品的数量, 就是当前+号的兄弟文本框(itxt)的值。
    修改表单的值是val() 方法
  3. 注意2: 这个变量初始值应该是这个文本框的值,在这个值的基础上++。要获取表单的值
  4. 减号(decrement)思路同理,但是如果文本框的值是1,就不能再减了。

修改商品小计分析:

  1. 核心思路:每次点击+号或者-号,根据文本框的值 乘以 当前商品的价格 就是 商品的小计
  2. 注意1: 只能增加本商品的小计, 就是当前商品的小计模块(p-sum)
  3. 修改普通元素的内容是text() 方法
  4. 注意2: 当前商品的价格,要把¥符号去掉再相乘 截取字符串 substr(1)
  5. parents(‘选择器’) 可以返回指定祖先元素
  6. 最后计算的结果如果想要保留2位小数 通过 toFixed(2) 方法
  7. 用户也可以直接修改表单里面的值,同样要计算小计。 用表单change事件
  8. 用最新的表单内的值 乘以 单价即可 但是还是当前商品小计
  • Code:

    $(function() {
        // 1. 全选 全不选功能模块
        // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
        // 事件可以使用change
        $(".checkall").change(function() {
            // console.log($(this).prop("checked"));
            $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
            if ($(this).prop("checked")) {
                // 让所有的商品添加 check-cart-item 类名
                $(".cart-item").addClass("check-cart-item");
            } else {
                // check-cart-item 移除
                $(".cart-item").removeClass("check-cart-item");
            }
        });
        // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
        $(".j-checkbox").change(function() {
            // if(被选中的小的复选框的个数 === 3) {
            //     就要选中全选按钮
            // } else {
            //     不要选中全选按钮
            // }
            // console.log($(".j-checkbox:checked").length);
            // $(".j-checkbox").length 这个是所有的小复选框的个数
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
            if ($(this).prop("checked")) {
                // 让当前的商品添加 check-cart-item 类名
                $(this).parents(".cart-item").addClass("check-cart-item");
            } else {
                // check-cart-item 移除
                $(this).parents(".cart-item").removeClass("check-cart-item");
            }
        });
        // 3. 增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
        $(".increment").click(function() {
            // 得到当前兄弟文本框的值
            var n = $(this).siblings(".itxt").val();
            // console.log(n);
            n++;
            $(this).siblings(".itxt").val(n);
            // 3. 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
            // 当前商品的价格 p  
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            console.log(p);
            var price = (p * n).toFixed(2);
            // 小计模块 
            // toFixed(2) 可以让我们保留2位小数
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
            getSum();
        });
        $(".decrement").click(function() {
            // 得到当前兄弟文本框的值
            var n = $(this).siblings(".itxt").val();
            if (n == 1) {
                return false;
            }
            // console.log(n);
            n--;
            $(this).siblings(".itxt").val(n);
            // var p = $(this).parent().parent().siblings(".p-price").html();
            // parents(".p-num") 返回指定的祖先元素
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            console.log(p);
            // 小计模块 
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
            getSum();
        });
        //  4. 用户修改文本框的值 计算 小计模块  
        $(".itxt").change(function() {
            // 先得到文本框的里面的值 乘以 当前商品的单价 
            var n = $(this).val();
            // 当前商品的单价
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
            getSum();
        });
        // 5. 计算总计和总额模块
        getSum();
    
        function getSum() {
            var count = 0; // 计算总件数 
            var money = 0; // 计算总价钱
            $(".itxt").each(function(i, ele) {
                count += parseInt($(ele).val());
            });
            $(".amount-sum em").text(count);
            $(".p-sum").each(function(i, ele) {
                money += parseFloat($(ele).text().substr(1));
            });
            $(".price-sum em").text("¥" + money.toFixed(2));
        }
        // 6. 删除商品模块
        // (1) 商品后面的删除按钮
        $(".p-action a").click(function() {
            // 删除的是当前的商品 
            $(this).parents(".cart-item").remove();
            getSum();
        });
        // (2) 删除选中的商品
        $(".remove-batch").click(function() {
            // 删除的是小的复选框选中的商品
            $(".j-checkbox:checked").parents(".cart-item").remove();
            getSum();
        });
        // (3) 清空购物车 删除全部商品
        $(".clear-all").click(function() {
            $(".cart-item").remove();
            getSum();
        })
    })
    

知识点:

返回指定祖先元素:

console.log($(".four").parents(".one"));
  • Code:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="jquery.min.js"></script>
    </head>
    
    <body>
        <div class="one">
            <div class="two">
                <div class="three">
                    <div class="four">我不容易</div>
                </div>
            </div>
        </div>
        <script>
            console.log($(".four").parent().parent().parent());
            console.log($(".four").parents());
            console.log($(".four").parents(".one"));
        </script>
    </body>
    
    </html>
    



jQuery 元素操作

遍历元素

jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。

语法1:

$("div").each(function (index, domEle) { xxx; })
  1. each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个

  2. 里面的回调函数有2个参数: index 是每个元素的索引号;

demEle 是每个DOM元素对象,不是jquery对象

  1. 所以要想使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)

语法2:

$.each(object,function (index, element) { xxx; })
  1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象

  2. 里面的函数有2个参数: index 是每个元素的索引号; element 遍历内容



案例:购物车案例模块-计算总计和总额

分析:

  1. 核心思路:把所有文本框里面的值相加就是总计数量。总额同理
  2. 文本框里面的值不相同,如果想要相加需要用到each遍历。声明一个变量,相加即可
  3. 点击+号-号,会改变总计和总额,如果用户修改了文本框里面的值同样会改变总计和总额
  4. 因此可以封装一个函数求总计和总额的, 以上2个操作调用这个函数即可。
  5. 注意1: 总计是文本框里面的值相加用 val() 总额是普通元素的内容用text()
  6. 要注意普通元素里面的内容要去掉¥并且转换为数字型才能相加


创建元素

语法:

$("<li></li>");

动态的创建了一个



  • 添加元素

    1. 内部添加

    element.append("内容")
    

    把内容放入匹配元素内部最后面,类似原生 appendChild。

    element.prepend("内容")
    

    把内容放入匹配元素内部最前面。

    2. 外部添加

    element.after(''内容'')        //  把内容放入目标元素后面
    
    element.before(''内容'')    //  把内容放入目标元素前面
    

    内部添加元素,生成之后,它们是父子关系。

    外部添加元素,生成之后,他们是兄弟关系。



    删除元素

    element.remove()   //  删除匹配的元素(本身)
    
    element.empty()    //  删除匹配的元素集合中所有的子节点
    
    element.html("")   //  清空匹配的元素内容
    
    1. remove 删除元素本身。
    2. empt() 和 html(‘’‘’) 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容。


    案例:购物车案例模块-删除商品模块

    1. 核心思路:把商品remove() 删除元素即可
    2. 有三个地方需要删除: 1. 商品后面的删除按钮 2. 删除选中的商品 3. 清理购物车
    3. 商品后面的删除按钮: 一定是删除当前的商品,所以从 $(this) 出发
    4. 删除选中的商品: 先判断小的复选框按钮是否选中状态,如果是选中,则删除对应的商品
    5. 清理购物车: 则是把所有的商品全部删掉


    案例:购物车案例模块-选中商品添加背景

    1. 核心思路:选中的商品添加背景,不选中移除背景即可
    2. 全选按钮点击:如果全选是选中的,则所有的商品添加背景,否则移除背景
    3. 小的复选框点击: 如果是选中状态,则当前商品添加背景,否则移除背景
    4. 这个背景,可以通过类名修改,添加类和删除类



    jQuery 尺寸、位置操作

    jQuery 尺寸

    Untitled

    以上参数为空,则是获取相应值,返回的是数字型。

    如果参数为数字,则是修改相应值。

    参数可以不必写单位。



    jQuery 位置

    位置主要有三个: offset()、position()、scrollTop()/scrollLeft()

    1. offset() 设置或获取元素偏移

    offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
    该方法有2个属性 left、top 。offset().top 用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。

    可以设置元素的偏移:offset({ top: 10, left: 30 });

    2. position() 获取元素偏移

    position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。

    该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。

    该方法只能获取。

    3. scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧

    1. scrollTop() 方法设置或返回被选元素被卷去的头部。
    2. 不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部。
    • Code:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
          <style>
              * {
                  margin: 0;
                  padding: 0;
              }
              
              .father {
                  width: 400px;
                  height: 400px;
                  background-color: pink;
                  margin: 100px;
                  overflow: hidden;
                  position: relative;
              }
              
              .son {
                  width: 150px;
                  height: 150px;
                  background-color: purple;
                  position: absolute;
                  left: 10px;
                  top: 10px;
              }
          </style>
          <script src="jquery.min.js"></script>
      </head>
      
      <body>
          <div class="father">
              <div class="son"></div>
          </div>
          <script>
              $(function() {
                  // 1. 获取设置距离文档的位置(偏移) offset
                  console.log($(".son").offset());
                  console.log($(".son").offset().top);
                  // $(".son").offset({
                  //     top: 200,
                  //     left: 200
                  // });
                  // 2. 获取距离带有定位父级位置(偏移) position   如果没有带有定位的父级,则以文档为准
                  // 这个方法只能获取不能设置偏移
                  console.log($(".son").position());
                  // $(".son").position({
                  //     top: 200,
                  //     left: 200
                  // });
              })
          </script>
      </body>
      
      </html>
      


    案例:带有动画的返回顶部

    1. 核心原理: 使用animate动画返回顶部。
    2. animate动画函数里面有个scrollTop 属性,可以设置位置
    3. 但是是元素做动画,因此 $(“body,html”).animate({scrollTop: 0})

    Code:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            body {
                height: 2000px;
            }
            
            .back {
                position: fixed;
                width: 50px;
                height: 50px;
                background-color: pink;
                right: 30px;
                bottom: 100px;
                display: none;
            }
            
            .container {
                width: 900px;
                height: 500px;
                background-color: skyblue;
                margin: 400px auto;
            }
        </style>
        <script src="jquery.min.js"></script>
    </head>
    
    <body>
        <div class="back">返回顶部</div>
        <div class="container">
        </div>
        <script>
            $(function() {
                $(document.scrollTop(100));
                // 被卷去的头部 scrollTop()  / 被卷去的左侧 scrollLeft()
                // 页面滚动事件
                var boxTop = $(".container").offset().top;
                $(window).scroll(function() {
                    // console.log(11);
                    console.log($(document).scrollTop());
                    if ($(document).scrollTop() >= boxTop) {
                        $(".back").fadeIn(); 
                    } else {
                        $(".back").fadeOut();
                    }
                });
                // 返回顶部
                $(".back").click(function() {
                    // $(document).scrollTop(0);
                    $("body, html").stop().animate({
                        scrollTop: 0
                    });
                    // $(document).stop().animate({
                    //     scrollTop: 0
                    // }); 不能是文档而是 html和body元素做动画
                })
            })
        </script>
    </body>
    
    </html>
    


    案例: 品优购电梯导航

    1. 当我们滚动到 今日推荐 模块,就让电梯导航显示出来
    2. 点击电梯导航页面可以滚动到相应内容区域
    3. 核心算法:因为电梯导航模块和内容区模块一一对应的
    4. 当我们点击电梯导航某个小模块,就可以拿到当前小模块的索引号
    5. 就可以把animate要移动的距离求出来:当前索引号内容区模块它的offset().top
    6. 然后执行动画即可

    1. 当我们点击电梯导航某个小li, 当前小li 添加current类,兄弟移除类名
    2. 当我们页面滚动到内容区域某个模块, 左侧电梯导航,相对应的小li模块,也会添加current类,兄弟移除current类。
    3. 触发的事件是页面滚动,因此这个功能要写到页面滚动事件里面。
    4. 需要用到each,遍历内容区域大模块。 each里面能拿到内容区域每一个模块元素和索引号
    5. 判断的条件: 被卷去的头部 大于等于 内容区域里面每个模块的offset().top
    6. 就利用这个索引号找到相应的电梯导航小li添加类。
    • Code:js

      $(function() {
          // 当我们点击了小li 此时不需要执行 页面滚动事件里面的 li 的背景选择 添加 current
          // 节流阀  互斥锁 
          var flag = true;
          // 1.显示隐藏电梯导航
          var toolTop = $(".recommend").offset().top;
          toggleTool();
      
          function toggleTool() {
              if ($(document).scrollTop() >= toolTop) {
                  $(".fixedtool").fadeIn();
              } else {
                  $(".fixedtool").fadeOut();
              };
          }
      
          $(window).scroll(function() {
              toggleTool();
              // 3. 页面滚动到某个内容区域,左侧电梯导航小li相应添加和删除current类名
      
              if (flag) {
                  $(".floor .w").each(function(i, ele) {
                      if ($(document).scrollTop() >= $(ele).offset().top) {
                          console.log(i);
                          $(".fixedtool li").eq(i).addClass("current").siblings().removeClass();
      
                      }
                  })
              }
      
          });
          // 2. 点击电梯导航页面可以滚动到相应内容区域
          $(".fixedtool li").click(function() {
              flag = false;
              console.log($(this).index());
              // 当我们每次点击小li 就需要计算出页面要去往的位置 
              // 选出对应索引号的内容区的盒子 计算它的.offset().top
              var current = $(".floor .w").eq($(this).index()).offset().top;
              // 页面动画滚动效果
              $("body, html").stop().animate({
                  scrollTop: current
              }, function() {
                  flag = true;
              });
              // 点击之后,让当前的小li 添加current 类名 ,姐妹移除current类名
              $(this).addClass("current").siblings().removeClass();
          })
      })
      
百元DIY手机荧光计:低成本荧光检测平台搭建与实战 荧光检测是一种基于物质受特定波长光激发后发射更长波长荧光的分析技术,其核心原理在于光与物质的相互作用。通过选择性激发与检测,该技术能实现对痕量物质的高灵敏度、高特异性定量分析,在生物医学、环境监测和食品安全等领域具有重要价值。传统荧光分光光度计虽精度高,但成本昂贵、体积庞大且操作复杂,限制了其在现场快检和普及教育中的应用。本文聚焦于如何利用智能手机的高性能摄像头和处理器,结合低成本光学滤光片和LED光源,构建一个便携、经济的DIY荧光检测平台。该方案通过简化光路设计,采用带通滤光片进行波长选择,并利用图像处 阅读详情

相关推荐

时间序列学习(4):平稳性检验(单位根检验、ADF检验)

时间序列学习(4):平稳性检验(单位根检验、ADF检验)1、单位根检验2、ADF检验3、指数走势的检验4、对数收益率序列检验 相关图可以大致判断序列是否平稳。但是,这毕竟不是严格的。 这篇笔记来就谈一谈平稳性的检验。 到目前为止,我们有了以下的时间序列模型: 白噪声; 随机游走; AR模型; MA模型; ARMA模型。 我们知道白噪声、MA模型一定是平稳的(这里的平稳都是弱平稳);随机游走一定是不平稳的;ARMA模型取决于其AR部分。 所以唯一需要做平稳性检验的就是AR模型。 1、单位根检验 先来看一阶

lucialucia的博客 7万+

b站pink老师JavaScript的jQuery 案例代码——电梯导航案例

b站pink老师JavaScript的jQuery 案例代码——电梯导航案例,本文代码解决了原课程代码的BUG:点第四个li,页面滚到对应地方后,电梯导航的current会跳到第三个li上

weixin_72322475的博客 5763

ROS2与Gazebo协同实现多机器人避障仿真

本文详细介绍了如何利用ROS2与Gazebo协同搭建多机器人避障仿真环境。通过创建SDF机器人模型、编写多机器人启动文件以及集成基础避障算法,构建了一个低成本、高效率的虚拟测试平台,为AGV编队、机器人集群等项目的算法验证与迭代提供了完整解决方案。

weixin_29065659的博客 294

快速上手jQuery:属性操作、文本属性值、元素操作、位置尺寸操作

用户自己给元素添加的属性,我们称为自定义属性。比如给 div 添加 index =“1”。1. 获取属性语法attr(''属性'') // 类似原生 getAttribute()2. 设置属性语法attr(''属性'', ''属性值'') // 类似原生 setAttribute()改方法也可以获取 H5 自定义属性。

黑马程序员官方博客 327

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

2019美亚杯团体赛刷题 部分题解(1-42、106-116)

文章目录写在前面使用工具刷题1.在黑客路由器里,有一台设备的MAC地址为00:11:6B:47:4D:55,请问它的IP地址是什么?2.在黑客路由器里,发现一设备的IP地址为192.168.0.103,请问该设备为如下哪一个:3.警方已经查证所有连接此router的设备都归黑客所有,根據黑客路由器的訊息,下列哪组(设备---ip)是错误的:4.Hacker现场检获的Windows主机硬盘已成功取证并制作成镜像Win1.E01,下列哪个是其硬盘证据文件的MD5哈希值。5.MD5hash算法会产生一个什么大小的

7ruth0hn的博客 7544

jQuery操作属性

本文主要介绍了 jQuery 的属性操作,`attr()` 用于设置、获取和移除普通属性,`removeAttr()` 专门移除属性。在处理布尔属性时,1.6 版本后需用 `prop()` 方法。通过“动物相册”和“全选反选”案例,分别展示了这些方法在实际开发中的应用,帮助理解属性操作的具体用法。

m0_74350516的博客 1027

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

jQuery操作属性大全

jQuery操作属性操作元素属性操作样式类操作样式获取或设置元素高度和宽度操作内容操作HTML代码操作text文本操作值查找和筛选元素过滤查找链式操作 操作元素属性 属性是每个页面元素的重要内容,HTML标签可以有一到若干个属性。id即是元素的常用属性之一。例如: <input type="text" name="firstname" value="Dennis" id="first" /> 我们可以使用javascript中的getAttribute和setAttribute来操作元素的"元

impact_factor的博客 1141

dify安装ollama插件及OLLAMA模型添加失败问题完整解决方法

plugin_daemon-1 | 2025/05/10 17:37:36 stdio.go:160: [INFO]plugin langgenius/ollama:0.0.6: Installed model: ollama 提示ollama安装成功,再添加模型就不会有问题了。安装dify1.2.0和1.3.1均出现OLLAMA插件安装失败或插件安装后添加模型失败的问题,具体表现为一是添加ollama插件时没反应,需要二次添加才成功;二是添加模型时点保存报500错误或点保存后没反应,无法成功添加。

symstandsun的博客 9078

2026年职业院校技能大赛中职移动应用与开发—数字生活APP原型设计参考答案(含素材)

本模块以产品原型为目标,考查参赛选手熟练收集、分析和归纳客户需求,清晰梳理业务流程,熟练使用UI设计软件进行产品UI/UE设计,掌握正确的UI配色方案,设计出符合业务逻辑的人体工学移动App 原型优秀作品。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 568

JQuery属性操作

文章目录JQuery属性操作1.取得元素的指定属性值2.为元素的指定属性赋值3.删除元素的指定属性4.取得指定属性的值5.为元素设置属性值6.为元素添加class属性7.删除元素的指定的class属性8.取得指定元素下的HTML值9.为指定元素设置新的HTML代码10.取得指定元素下的文本值11.替换文本值12.取得文本框的值13.替换文本框的值 JQuery属性操作 就是用JS操作HTML标签的...

慕北丶 556

Android SurfaceFlinger——概述(一)

对于系统渲染流程的理解是指导 SurfaceFlinger 设计的核心思想,从 Android 4.1 一直到 Android 9.0 都没有太大的变化。只要抓住这五个核心思想,我们阅读 SurfaceFlinger 的难度就会下降不少。下面看一下 SurfaceFlinger 的体系和 Skia 以及 View的绘制流程的关系。framework 面向开发者所有的 View 是便于开发的控件,里面仅仅只是提供了当前 View 各种属性以及功能。

小旭的专栏 2584

jQuery之属性操作

文章目录1.jQuery属性操作1.1 元素固有属性值 prop()1.2 元素自定义属性值 attr()1.3 数据缓存 data()2. jQuery 文本属性值3. jQuery 元素操作3.1 遍历元素3.1.1 each()3.1.2 $.each()3.2 创建元素、添加元素、删除元素4. jQuery 尺寸、位置操作4.1 jQuery 尺寸操作4.2 jQuery 位置操作5. 总结 1.jQuery属性操作 1.1 元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性,比

m0_56712012的博客 495

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jQuery的操作属性

目录 一、操作属性 1、读取属性值:attr(属性名) 2、修改属性值 3、删除属性:removeAttr(属性名) 二、操作类(class) 1、添加class属性:addClass(class属性) 2、删除class属性:removeClass(属性名) 3、交替添加/删除class属性:toggleClass(class属性) 三、操作css 1、获取CSS样式属性值:css('样式属性名') 2、设置样式属性--采用'key/value' 3、一次设置一个属性:css('属

Han_Zhou_Z的博客 1495

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jQuery属性操作

jQuery属性操作 1.1设置或获取元素固有属性(元素本身只带的属性)属性值prop() 1.获取属性语法 prop(“属性”) 2.设置属性语法 prop(“属性”,“属性值”) 1.2设置或获取元素自定义属性attr() 1.3数据缓存 data() data()方法可以在指定的元素上存数据,是存放在元素的内存里面,并不会修改DOM元素结构,一旦页面刷新,之前存放的数据将被移除 <a href="www.baidu.com" title="很好">都挺好</a> &lt

Hst1120的博客 1238

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JQuery 操作页面属性

JQuery操作页面属性 获得页面的属性 //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 var te=tex.attr("type"); var cl =tex.attr("class"); //获得元素固有的属性值 var val =tex.attr("value"); //获得文本框实时输入的值 var val2=tex.val(); 使用attr获...

jssd的博客 204

JQuery 操作对象的属性值

通过JQuery去操作前台对象(div,span...)的属性是很常见的事情,本文就简单的介绍几种操作情形。 1):通过属性值去获取对象 2):用JQuery去修改对象的属性值 3):获取并修改对象的Style的属性值   这里提供一个简单的前台Html代码,后续操作都是对此段Html代码进行的。 &lt;html xmlns="http://www.w3.org/1999/xht...

weixin_33810006的博客 539

jQuery的属性操作

jquery 里面可以进行一堆操作 进行一个简单的布局和样式书写 <style> div{ border: 1px solid #000; } .box{ width: 100px; height: 100px; } .box1{ width: 200px; height: 200px;

Null_Robot的博客 220

jquery 属性操作

hello world hello world 我同意 <script src="./jquery-3.4.1.js"></script> <script> //属性操作 // =====赋值====== // para1:strin...

weixin_45147044的博客 102

jquery属性操作

html() html() 取得第一个匹配元素的html内容,这个函数不能用于XML文档,但可以用于XHTML文档 参数html([val|fn]) 无参数时返回当前元素的内容,其内容为一个字符串 参数val用于设定HTML内容的值 参数fn为一个函数,此函数返回一个HTML字符串,接受两个参数,index为元素在集合中的索引位置,html为原先的HTML值 // 取出html内容 var $htm = $('#div1').html(); // 设置html内容 $('#div1').html('&

lipeiwen1998的博客 350

jQuery 属性操作

一.标签属性操作   attr() 设置属性值,或返回被选元素的属性值 (//getAttrbute() setAttrbute()) 路径的相对地址    removeAttr() 移除属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF...

anzhehan1535的博客 125
上一篇: jQuery 常用API
下一篇: jQuery 事件
CaptainDrake
博客等级 码龄6年 5363粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值