# JQ 的 DOM 操作

如何对 HTML+CSS 进行增删改查,jQuery 的设计思路:赋值和取值合体

1
2
3
4
5
6
7
8

<div> 这是文本</div>
$("div").text();//取值
$("div").text("这是一段纯洁的文字");//赋值
// 反观JS:
div.getAttribute("");//取值用一个方法
div.setAttribute("");//赋值用的另外一个方法

# JQ 操作 HTML 的属性和方法

  1. attr 方法

    attr==Attribute 属性。作用:给标签添加或删除指定的属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    <div id="box" >
    这里是文字
    </div>
    JQ:需求:给div添加HTML属性
    $("div").attr("属性名",["属性值"]);
    //比如:
    $("div").attr("id");//box,获取
    //设置
    $("div").attr("id","mydiv");//box改为mydiv
    $("div").attr("title","提示文字");//
    $("div").attr("id","");//只是把属性值清空

    TIPS:技巧

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    //批量一次性给div添加多个属性
    $("div").attr({
    id:"box",
    class:"box2",
    title:"提示文字"
    });
    //JS
    odiv.id="box";
    odiv.className="div2";
    odvi.title="提示文字"

  2. removeAttr () 作用:

    彻底删除标签的指定的属性名

    1
    2
    3
    4
    5
    6
    7

    <div id="box">

    </div>
    JQ:
    $("div").removeAttr("id");//彻底删除,只要写一个参数就可以了

  3. jQ.prop (“属性名”,[‘属性值’])

作用:同 attr,只是该方法适用于表单控件的属性值,而不是普通元素的属性值

面试:prop 和 attr 有什么区别,分别用于哪些元素中??

  1. removeProp()

    用法含义同 removeAttr ()

  2. jq 对象.html ()

    js 对象.innerHTML

    作用:获取或设置标签的内容(标签)

    1
    2
    3
    4
    5
    6
    7
    8

    <div>
    <p>这是原本的内容</p>
    </div>
    $("div").html();//获取div中的所有的内容,包含标签
    $("div").html("<h1>新增的内容</h1>");//设置div中的所有的内容,包含标签
    总结:不加参数就是获取,添加参数就是设置

  3. text()

    相当于是 JS 中的 innerText, 用来设置或获取标签的文本内容。

    特点:会过滤标签,只留下纯文本。

    用法同 html ();

  4. val()

    相当于是 JS 中的 控件对象.value;

    1
    2
    3
    4
    5
    6

    <input value="123">
    JQ:
    $("input").val();//获取
    $("input").val(456);//设置

  5. $.trim()

    作用:去掉字符串的首尾空格。该方法不是去选择元素然后做什么事情,该方法为工具方法,区别于前面的 1-7 的方法,叫对象方法。

    1
    2
    3
    4
    5
    6
    7

    var str=" agdasdg gasdg "
    JQ:
    $.trim(str);//'agdasdg gasdg'
    //用于表单验证中
    之前在JS中是没有这个现成的方法的

    JS 去首尾空的方法

    1
    2
    3
    4
    5
    6
    7

    function trim(str){
    var reg=/^\s+|\s+$/g;
    return str.replace(reg,'');
    }
    trim(" asdgasdg agasdg ");

  6. 遇到的第一个 JQ 属性: .length

    1
    2
    3
    4
    	
    $("div").length;//10
    //可以统计标签的使用数量

# CSS 操作

  1. css()

    相当于是 JS 中的 style. 样式名,用来添加行内样式的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1. 添加单个样式
    $("div").css("样式名","样式值")
    //注意:样式名即为css的写法,样式值也为css的写法
    //又给我们减轻了负担
    //js---> background-color 要改蛇形
    //JQ--->不需要改
    2. 添加多行样式
    $("div").css({
    "样式名1":"样式值1",
    "样式名2":"样式值2"
    })

  2. addClass()

    作用:给指定的标签添加 className,可以连续添加多个。

    1
    2
    3
    4
    5
    6

    <div class="box"></div>
    $("div").addClass("box2");//如果标签没有,则添加,如果有则新增一个
    //反观JS:
    odiv.className="box2";//有没有问题??会替换老的class

  3. removeClass (“要删除的 class”)

    上面的只能添加,如果要删除一个或多个,则需要使用删除的方法进行操作

  4. toggleClass (“要切换的 class 名”);

  5. hasClass (“有没有指定的 class”);//true,false

  6. width()

    1
    2
    3
    4
    5
    6
    7
    8
    // 指的是样式宽,即style.width,可读写
    <div style="width:100px">

    </div>
    //jQ
    // 不管有没有写行内样式,都可以读出它的样式宽
    $("div").width();//读
    $("div").width(200);//设置它的宽度为200px
  7. innerWidth();

    可视宽,包括 padding,只读

  8. outerWidth()

    1
    2
    3
    4
    5
    6

    只读属性
    a. 占位宽:包括padding+border
    b. 如果参数为true,则还包括左右margin
    outerWidth(true);//width+左右padding+左右border+左右margin

# DOM 操作实例

# 实例 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>作业1</title>
<style type="text/css">
button{
float: left;
width: 200px;
height: 50px;
line-height: 50px;
border:1px solid;
background-color: #fff;
outline: none;
}
button.active{
background-color: #f60;
color: #fff;
}
</style>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function(){
// 这里写代码
$("button").click(function (){
$(this).toggleClass("active").siblings().removeClass("active");
})
});
</script>
</head>
<body>
<button type="button">首页</button>
<button type="button">女装</button>
<button type="button">男装</button>
</body>
</html>

# 实例 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>作业3</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<form>
<label for="username">请输入用户名:</label><input id="username" type="text" name="username"><br/><br/>
<input id="btn" type="button" value="验证">
</form>
<script>
$(function(){
// 写JQ代码
$("#btn").click(function (){
var reg=/^[a-zA-Z]{6}$/;
var str=$.trim($("#username").val());
reg.test(str)?alert("验证成功!"):alert("验证失败!");
})
})
</script>
</body>
</html>

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

tz 微信支付

微信支付

tz 支付宝

支付宝