目标:
1.使用jQuery操作CSS样式(重点)
2.使用jQuery操作网页元素(重点)
3.操作文本与属性值内容
4.操作DOM节点
5.遍历DOM节点
6.操作CSS-DOM
样式操作:
一、设置和获取样式值
使用CSS()为指定的元素设置样式值或获取样式值:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<style type="text/css">
div{
display: inline-block;
}
</style>
</head>
<body>
<div id="d1">
</div>
</body>
<script type="text/javascript">
// css 获取css样式
console.log($("#d1").css("display"));
</script>
</html>
使用addClass()和removeClass()追加或移除样式:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<style type="text/css">
.sb{
width : 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div id="d1">
</div>
</body>
<script type="text/javascript">
// addClass 追加类
$("#d1").addClass("sb");
// remove 移除
$("#d1").removeClass("sb");
</script>
</html>
切换样式:
使用 toggleClass() 模拟了addClass()与removeClass()实现样式切换的过程
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
div{
width: 90px;
height: 90px;
border: 1px red solid;
}
.po{
background-color: yellow;
border: 5px aqua solid;
}
</style>
</head>
<body>
<div id="d1">
</div>
<button onclick="changeColor()">变换颜色和边框</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
//点击响应函数
function changeColor(){
$("#d1").toggleClass("po");
}
</script>
</html>
判断是否含指定的样式:
hasClass( )方法来判断是否包含指定的样式:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
div{
width: 90px;
height: 90px;
border: 1px red solid;
}
.po{
background-color: yellow;
border: 5px aqua solid;
}
</style>
</head>
<body>
<div id="d1">
<p>saldhjdbajsckjasdbas</p>
</div>
<button onclick="haspo()">有没有po样式</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
function haspo(){
console.log($("#d1").hasClass("po"));
}
</script>
</html>
内容及Value值操作:
html()可以对HTML代码进行操作,类似于JS中的innerHTML;
text()可以获取或设置元素的文本内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
div{
width: 90px;
height: 90px;
border: 1px red solid;
}
</style>
</head>
<body>
<div id="d1">
<p>saldhjdbajsckjasdbas</p>
</div>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
// html获取#d1 里的东西
$("#d1").html();
// html将#d1 里的东西设为空
$("#d1").html("");
// html将#d1 里的东西改变
console.log($("#d1").html("<a>scasca</a>"));
// text将文本改变
$("#d1").text("scas");
</script>
</html>
html( ) 和text( )方法的区别:
语法格式 | 参数说明 | 功能描述 |
html( ) | 无参数 | 用于获取第一个匹配元素的HTML内容或文本内容 |
html(content) | content为元素的HTML内容 | 用于设置所有匹配元素的HTML内容或文本内容 |
text( ) | 无参数 | 用于获取所有匹配元素的文本内容 |
text (content) | content为元素的文本内容 | 用于设置所有匹配元素的文本内容 |
属性值操作:
val()可以获取或设置元素的value属性值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" name="age" id="inp1" value="18" />
<button type="button" onclick="getvalues()">获取input值</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
function getvalues(){
// 获取input里的值并输出
alert($("input[name = age]").val());
// 获取input里的值并修改
$("input[name=age]").val("300");
}
</script>
</html>
节点及节点属性操作
创建节点
语法
$(selector):通过选择器获取节点 $(element):把DOM节点转化成jQuery节点 $(html):使用HTML字符串创建jQuery节点
举例
var $newNode=$("<li></li>");
var $newNode1=$("<li>你喜欢哪些冬季运动项目?</li>");
var $newNode2=$("<li title='last'>北京申办冬奥会是再合适不过了!</li>");
插入节点
语法 | 功能 |
append(content) | $(A).append(B)表示将B追加到A中 如:$("ul").append($newNode1); |
appendTo(content) | $(A).appendTo(B)表示把A追加到B中 如:$newNode1.appendTo("ul"); |
prepend(content) | $(A). prepend (B)表示将B前置插入到A中 如:$("ul"). prepend ($newNode1); |
prependTo(content) | $(A). prependTo (B)表示将A前置插入到B中 如:$newNode1. prependTo ("ul"); |
元素外部插入同辈节点
语法 | 功能 |
after(content) | $(A).after (B)表示将B插入到A之后 如:$("ul").after($newNode1); |
insertAfter(content) | $(A). insertAfter (B)表示将A插入到B之后 如:$newNode1.insertAfter("ul"); |
before(content) | $(A). before (B)表示将B插入至A之前 如:$("ul").before($newNode1); |
insertBefore(content) | $(A). insertBefore (B)表示将A插入到B之前 如:$newNode1.insertBefore("ul"); |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#d1{
width:200px;
height: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="d1">
<a href="">adnkjsdnkasdn</a>
<p>4565116</p>
<p>4565116</p>
</div>
<button id="bt1" onclick="plk()" name="">点我</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
// $(A).append(B)表示将B追加到A中
var str = $("<p>sdad</p>");
$("#d1").append(str);
// $(A). prepend (B)表示将B前置插入到A中
var str2 = $("<p>sdad1111</p>");
$("#d1").prepend(str2);
// $(A).after (B)表示将B插入到A之后
var str3 = $("<p>sdad1265265</p>");
$("#d1").after(str3);
// $(A). before (B)表示将B插入至A之前
var str4 = $("<p>sdad265</p>");
$("#d1").before(str4);
</script>
</html>
删除节点
remove():删除整个节点
empty():清空节点内容
detach():删除整个节点,保留元素的绑定事件、附加的数据
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#d1{
width:200px;
height: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="d1">
<a href="">adnkjsdnkasdn</a>
<p>4565116</p>
<p>4565116</p>
</div>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
// 删除节点
$("#d1").remove();//删除整个节点
$("#d1").empty();//删除节点内容
</script>
</html>
替换节点
使用replaceWith()替换现有节点:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#d1{
width:200px;
height: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="d1">
<a href="">adnkjsdnkasdn</a>
<p>4565116</p>
<p>4565116</p>
</div>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
//使用 replaceWith替换节点
$("#d1>a").replaceWith($("<p>这是被替换的</p>"));
</script>
</html>
当然replaceWith() 与replaceAll() 方法都可以实现元素节点的替换,二者最大的区别在 于替换字符的顺序,前者是用括号中的字符替换所选择的元素,后者是用字符串替换括号中所选择的元素。同时,一旦完成替换,被替换元素中的全部事件都将消失。
复制节点
clone()用于复制某个节点:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<button id="bt1" onclick="plk()" name="">点我</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
// 使用clone,用于复制某个节点
function plk(){
alert("我出来了!")
}
var tpo=$("#bt1").clone();
$("#bt1").after(tpo);
</script>
</html>
节点遍历
语法:
$(selector).children();//遍历子元素
$(selector).next();//遍历同辈之后的
$(selector).prev();//遍历同辈之前的
$(selector).slibings();//遍历同辈前后的
$(selector).parent();//遍历父级
$(selector).parents();//遍历父级和以上的
$(selector).each( );//遍历每一个
属性操作
语法:
$(selector).attr([name]) ;//获取
//或
$(selector).attr({[name1:value1]…[nameN:valueN]}) ;//设置
$(selector).removeAttr(name) ;//删除
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#d1{
width:200px;
height: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<button id="bt1" onclick="plk()" name="">点我</button>
</body>
<script src="js/jquery-3.6.0.js" type="text/javascript"></script>
<script type="text/javascript">
// 使用attr()获取与设置属性
$("#bt1").attr({["name":"btname"]});
//使用aatr()删除属性
$("#bt1").remove("name");
console.log($("#d1").attr("name"));
</script>
</html>