JQuery学习笔记(三)DOM操作,JQuery遍历

一、DOM操作(增删改查)

1、新增节点

$(selector).append(content)			//在匹配元素内部最后面新增一个节点
$(content).appendTo(selector)		//把新节点追加到匹配元素内部最后面
 
$(selector).prepend(content)			//在匹配元素内部最前面新增一个节点
$(content).prependTo(selector)		//把新节点追加到匹配元素内部最前面
 
$(selector).after(content)				//在匹配元素同级之后新增一个节点
$(content).insertAfter(selector)		//把新节点追加到匹配元素同级之后
 
$(selector).before(content)			//在匹配元素同级之前新增一个节点
$(content).insertBefore(selector)		//把新节点追加到匹配元素同级之前

案例

<body>
    <input type="button" value="btn">
    <ol class="list">
        <li>吃饭</li>
        <li>睡觉</li>
    </ol>
</body>
<script src="../lib/jquery-1.8.3.js"></script>
<script>
    $(function () {
        //按钮单击事件
        $("input").click(function () {
            //新增li标签
            var newLi = "<li>打地鼠</li>";
            //将新增的li拼接到类名list列表
            // $(".list").append(newLi);
            $(newLi).appendTo(".list");
        });

        // 元素内部第一个元素
        $("input").click(function () {
            var newLi = "<li>敲代码</li>";
            // $(".list").prepend(newLi);
            $(newLi).prependTo(".list");
        });

        // 同级之后新增一个节点
        $("input").click(function () {
            var newLi = "<li>asd</li>";
            $(newLi).insertAfter(".list");
        });

        // 同级之后新增一个节点
        $("input").click(function () {
            var newLi = "<li>qwe</li>";
            $(newLi).insertBefore(".list");
        });
    });
</script>

在这里插入图片描述
2.删除节点

remove()		//删除节点,全部删除
empty()			//清空节点,只清空内部内容保留外面的标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>

<body>
<ul class="list">
    <li>
        商品信息1
        <a href="#">删除</a>
    </li>
    <li>
        商品信息2
        <a href="#">删除</a>
    </li>
    <li>
        商品信息3
        <a href="#">删除</a>
    </li>
</ul>
</body>
    
<script src="../lib/jquery-1.8.3.js"></script>
<script>
    $(function () {
        //点击a标签, 删除元素
        //获取a标签 绑定事件
        $("a").click(function () {
            //1 将所有的 a 标签删除
            // $("a").remove();
            //2 删除当前被点击的a标签
            // $(this).remove();
            //3 删除被点击a标签的父标签
            // $(this).parent().remove();
            //4 empty 清空
            $(this).parent().empty();
        });
    });
</script>
<style>
    .list{
        width: 400px;
        margin: 50px auto;
    }
    .list li{
        list-style: none;
        height: 50px;
        line-height: 50px;
        border-bottom: 1px dashed #ccc;
    }
    .list a{
        float: right;
    }
</style>
</html>

在这里插入图片描述
3 替换节点

$(selector).replaceWith(content)	  //把旧的替换掉
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>替换节点</title>
</head>
<body>
<button>替换节点</button>
<div id="box">这是一个div节点.</div>
</body>

<script src="../lib/jquery-1.8.3.js"></script>
<script>
    $(function () {
        //点击按钮, 将div标签替换为h1标签
        //为按钮绑定事件
        $("button").click(function () {
            //准备替换的内容
            var h = "<h1>我是h1标签</h1>";
            //替换
            $("#box").replaceWith(h);
        });
    });
</script>
</html>

在这里插入图片描述

二、jQuery遍历函数

jquery对象的遍历方法

此方式是jquery特有的遍历方式,使用jquery集合对象调用each方法即可遍历。
Jq对象.each(function(index,element){
	alert(index); 	//打印索引
	alert(element);   //打印集合对象中的每一个元素
})
$(element).css('color','red');在使用的时候必须加选择器环境$()
// 经验:一般我们很少去用element这个参数,this在这里等同于element

遍历元素 修改颜色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery遍历</title>
<script src="../lib/jquery-1.8.3.js"></script>
<script>
    $(function () {
        //遍历 jquery对象.each(function(index, element) {});
        $("li").each(function (index, element) {
            console.log(index + " = " + element + " = " + $(element).html())
            //遍历元素 颜色设为blue
            //注意:element是JS对象,如需调用jquery方法,需将JS对象包装为jquery对象
            $(element).css("color", "blue");
        });
    });
</script>
    
</head>
<body>
<ul class="list">
    <li style="color: red;">11</li>
    <li style="color: red;">22</li>
    <li style="color: red;">33</li>
    <li style="color: red;">44</li>
</ul>
</body>
</html>

在这里插入图片描述

案例-省市联动

方式一:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>省市联动</title>
</head>
<body>
    <select id="province">
        <option value="none">--请选择省--</option>
        <option value="0">北京市</option>
        <option value="1">上海市</option>
        <option value="2">广州市</option>
    </select>
    <select id="city">
        <option value="none">--请选择市--</option>
    </select>
</body>
<script src="../lib/jquery-1.8.3.js"></script>
<script>
    $(function () {
        //区县数组
        var cities = [
            ["朝阳区", "海淀区", "丰台区", "昌平区", "西城区", "东城区", "通州区", "大兴区"],
            ["浦东新区", "闵行区", "静安区", "徐汇区", "杨浦区", "嘉定区", "黄埔区"],
            ["白云区", "天河区", "花都区", "番禺区"]
        ];
        //`province` 绑定+--+更改事件
        $("#province").change(function () {
            // 清空:jquery
            // $("#city").html("<option value=\"none\">--请选择市--</option>");
            // 清空:js
            // document.getElementById("city").innerHTML = "<option value=\"none\">--请选择市--</option>";
            // 清空:options数组(是JS数组)
            // document.getElementById("city").options.length = 1;
            // 清空:通过 get 方法将 jquery 转换为 js 对象.
            // $("#city").get(0).options.length = 1;

            // 重选省份后,市区选中第一个
            $("#city")[0].options.length = 1;
            
            //获取选中省份的索引值
            var index = $("#province").val();
            //根据index,从cities数组中取出对应的一维数组.实现遍历
            $(cities[index]).each(function (index, element) {
                // console.log(index + " = " + element); element 就是我们需要的字符串
                //创建option
                var option = "<option value=\"none\">"+element+"</option>";
                //将option添加到city标签中
                $("#city").append(option);
            });
        });
    });
</script>
</html>

在这里插入图片描述
方式二:JSON、[]为数组、{}为对象

  1. json数据 jsons.js
var china = [
    {
        "p_name": "吉林省",
        "p_id": "jl",
        "cities": [
            {
                "c_name": "长春",
                "c_id": "cc"
            },
            {
                "c_name": "四平",
                "c_id": "sp"
            },
            {
                "c_name": "通化",
                "c_id": "th"
            },
            {
                "c_name": "松原",
                "c_id": "sy"
            }
        ]
    },
    {
        "p_name": "辽宁省",
        "p_id": "ln",
        "cities": [
            {
                "c_name": "沈阳",
                "c_id": "sy"
            },
            {
                "c_name": "大连",
                "c_id": "dl"
            },
            {
                "c_name": "抚顺",
                "c_id": "fs"
            },
            {
                "c_name": "铁岭",
                "c_id": "tl"
            }
        ]
        
    },
    {
        "p_name": "山东省",
        "p_id": "sd",
        "cities": [
            {
                "c_name": "济南",
                "c_id": "jn"
            },
            {
                "c_name": "青岛",
                "c_id": "qd"
            },
            {
                "c_name": "威海",
                "c_id": "wh"
            },
            {
                "c_name": "烟台",
                "c_id": "yt"
            }
        ]
        
    },
    {
        "p_name": "上海市",
        "p_id": "sh",
        "cities": [
            {
                "c_name": "闵行区",
                "c_id": "mh"
            },
            {
                "c_name": "徐汇区",
                "c_id": "xh"
            },
            {
                "c_name": "黄浦区",
                "c_id": "hp"
            },
            {
                "c_name": "浦东新区",
                "c_id": "pd"
            }
        ]
    }
];
  1. html代码
<body>
    <select id="province">
        <option value="none">--请选择省--</option>
    </select>
    <select id="city">
        <option value="none">--请选择市--</option>
    </select>
</body>
  1. js代码
<script src="../lib/jquery-1.8.3.js"></script>
 <!--导入 city.js 文件-->
<script src="../lib/city.js"></script>
<script>
    $(function () {
        //jquery可以实现json文件遍历
        //遍历js文件中的china变量
        $(china).each(function (index, element) {
            //根据当前遍历的 element 对象, 设置 option 标签的值
            var province = "<option value='"+element.p_id+"'>"+element.p_name+"</option>";
            //将新建的标签拼接到 province 标签内容
            $("#province").append(province);
        });

        //给 `province` 绑定事件
        $("#province").change(function () {
            //注意:省份发生变化时,清空城市
            $("#city").html("<option value=\"none\">--请选择市--</option>");
            //获取当前选中省份的value值
            var p_id = $("#province").val();
            //遍历 china 数据, 查找与选中省份 p_id 相同的 element 标签对象
            $(china).each(function (index, element) {
                if (p_id == element.p_id) {
                    //需要遍历当前element对象的cities 数组
                    $(element.cities).each(function (index, element) {
                        //element对象的中c_id 和c_name 数据,并完成option对象的字符串书写
                        var city = "<option value='"+element.c_id+"'>"+element.c_name+"</option>";
                        //将新建的city标签, 拼接到city标签内部
                        $("#city").append(city);
                    });
                }
            });
        });
    });
</script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值