jQuery简单操作③

166 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情

jQuery简单操作

嗨嗨害!我又来水文了

1. jQuery属性操作

公共结构:

    <a href="http://www.baidu.com/" title="哈喽">123</a>
    <input type="checkbox" checked>
    <div index="1" data-index="123">hello</div>
    <span>123</span>

① 设置或获取元素固有属性值
所谓元素固有属性就是元素本身自带的属性,比如<a>元素里面的href,比如<input>元素里面的type

获取属性语法prop("属性")

    console.log($("a").prop("href"));//   http://www.baidu.com  
    
    $("input").change(function () {
            console.log($(this).prop("checked"));  // 这里点击后获取复选框的状态 false
    })

设置属性语法prop("属性","属性值")

    $("a").prop("title", "hello world");

image.png


② 设置或获取自定义属性值

获取属性语法attr("属性") 类似原生的getAttribute()

    console.log($("div").attr("index")); // 1

设置属性语法attr("属性","属性值") 类似原生的setAttribute()

    $("div").attr("index", 2);

image.png


③ 其他设置或获取属性值的方法
数据缓存data( )
data( )方法可以在指定的元素的内存中存取数据,并不会修改DOM元素结构。一但页面刷新,之前存放的数据都将被移除

    $("span").data("uname", "luffy");

image.png
并不会改变DOM元素结构,相当于把这个元素当作变量来看了,把值存到了这个元素里边去

    获取刚刚存进去的值
    console.log($("span").data("uname"));  // luffy

这个方法还可以获取data-index (H5自定义属性) 不用写data-

    console.log($("div").data("index")); // 123

2. jQuery内容文本值

公共结构

    <div>
        <span>我是内容</span>
    </div>
    <input type="text" value="请输入内容">

① 获取与设置元素内容 html()
普通元素内容html() 相当于原生js中的innerHTML
html( )获取元素内容, html("内容")设置元素内容

        console.log($("div").html()); //这种方法能把标签也显示出来
        $("div").html("1234");

image.png

image.png

② 获取与设置元素文本内容 text()
普通元素文本内容text() 相当于原生js中的innerText
text() 获取元素内容, text("内容") 设置元素文本内容

    console.log($("div").text()); // 1234
    $("div").text("123");

image.png

③ 获取与设置表单值 val()
获取和设置表单的值val() 相当于原生的value

        console.log($("input").val());
        $("input").val("123321");

image.png

image.png

3. jQuery遍历元素

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

语法1: $("div").each(function(index,domEle){ xxx; })

each( )方法遍历匹配的每一个元素。
里面的回调函数有2个参数: index是每个匹配到的元素的索引号; demEle是每个DOM元素对象,不是jQuery对象,所以要使用这个方法,需要给这个dom元素转换为jQuery对象$(domEle)

    <div>1</div>
    <div>2</div>
    <div>3</div>
            var sum = 0;
            var arr = ["red", "green", "blue"];
            $("div").each(function (i, domEle) {
                // 回调函数第一个参数一定是索引号  可以自己指定索引号号名称
                // console.log(index); 0 1 2
                // console.log(i); 0 1 2
                // 回调函数第二个参数一定是 dom元素对象 也是自己命名
                // console.log(domEle); 输出了匹配到的每一个元素(带标签的)
                // domEle.css("color"); dom对象没有css方法
                $(domEle).css("color", arr[i]);
                sum += parseInt($(domEle).text());
            })
            console.log(sum); // 6

语法2: $.each(object,function(index,element){ xxx; })

$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组、对象
回调函数中的两个参数,index是每个元素的索引号,element是遍历的内容

             $.each($("div"), function(i, ele) {
                 console.log(i); 0 1 2
                 console.log(ele); 输出的也是带标签的匹配到的元素
             });

            // 主要用来处理数据
             $.each(arr, function(i, ele) {
                 console.log(i); 0 1 2
                 console.log(ele); // red green blue
             })

            $.each({
                name: "luffy",
                age: 18
            }, function (i, ele) {
                console.log(i); // 输出的是 name age 属性名
                console.log(ele); // 输出的是 luffy  18 属性值
            })
        })

4. 创建添加删除元素

公共结构

    <ul>
        <li>原先的li</li>
    </ul>
    <div class="test">我是原先的div</div>

① 创建元素
语法: $("<标签>内容</标签>") 动态创建元素

    var li = $("<li>我是后来创建的li</li>");

② 添加元素
仅创建没有用,需要添加进去。
内部添加: 添加后是父子关系

            // $("ul").append(li);  内部添加并且放到内容的最后面 
            $("ul").prepend(li); // 内部添加并且放到内容的最前面

image.png

外部添加 添加后是兄弟关系:

            var div = $("<div>我是后妈生的</div>");
            // $(".test").after(div); 把内容放入目标元素的后面
            $(".test").before(div); //把内容放入目标元素的前面

image.png

删除元素

            // $("ul").remove(); 可以删除匹配的元素本身
            // $("ul").empty(); // 可以删除匹配的元素里面的子节点
            $("ul").html(""); // 清空匹配的元素的内容  与上面那个方法是一样的

ul被清空了

image.png