元素的尺寸
HTML
<body>
<div>
</div>
</body>
CSS
div{
width: 100px;
height: 100px;
border: 3px solid black;
padding: 10px;
margin: 20px;
}
内容尺寸
内容尺寸,盒子模型中content的尺寸
height([val]) 取得匹配元素当前计算的高度值(px)
$("div").height();
$("div").height(200);
width([val]) 取得第一个匹配元素当前计算的宽度值(px)
$("div").width();
$("div").width(200);
内部尺寸
内部尺寸,盒子模型中content + padding的尺寸
innerHeight() 获取第一个匹配元素内部区域高度(包括补白、不包括边框)
$("div").innerHeight()
innerWidth() 获取第一个匹配元素内部区域宽度(包括补白、不包括边框)
$("div").innerWidth()
外部尺寸
外部尺寸,盒子模型中content + padding+border的尺寸(如果参数是true,则,加上margin)
outerHeight([false\true]) 获取第一个匹配元素外部高度(默认包括补白和边框)
$("div").outerHeight()
$("div").outerHeight(true)
outerWidth([false\true]) 获取第一个匹配元素外部宽度(默认包括补白和边框)
$("div").outerWidth()
$("div").outerWidth(true)
筛选
过滤
eq(index) 获取第N个元素 index 从0 开始计数 如果 index 为负数,则从最后一个元素开始倒数
$("li").eq(1)
$("li").eq(-3)
first() 获取第一个元素
$('li').first()
last() 获取最后一个元素
$('li').last()
hasClass(class) 检查当前的元素是否含有某个特定的类,如果有,则返回true,否则返回false
$("div").hasClass("box")
filter(expr|obj|ele|fn) 筛选出与指定表达式匹配的元素集合
$("p").filter(".selected")
$("p").filter(".selected, :first")
is(expr|obj|ele|fn) 根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true 如果没有元素符合,或者表达式无效,都返回false
<form><input type="checkbox" /></form>
$("input[type='checkbox']").parent().is("form")
map(callback) 将一组元素转换成其他数组(不论是否是元素数组)
<form>
<input type="text" name="name" value="John"/>
<input type="text" name="password" value="password"/>
<input type="text" name="url" value="http://www.baidu.com/"/>
</form>
$("p").append( $("input").map(function(){
return $(this).val();
}).get().join(", ") );
has(expr|ele) 保留包含特定后代的元素,去掉那些不含有指定后代的元素
$('li').has('ul').css('background-color', 'red');
not(expr|ele|fn) 删除与指定表达式匹配的元素
$("p").not( $("#selected")[0])
slice(start, [end]) 选取一个匹配的子集
$("p").slice(0, 1);
查找
children([expr]) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合
$("div").children()
closest(expr|object|element) jQuery 1.3新增。从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素
<ul><li></li><li></li></ul>
$("li:first").closest(["ul", "body"]);
find(expr|obj|ele) 搜索所有与指定表达式匹配的元素
$("p").find("span")
next([expr]) 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合
$("p").next()
nextAll([expr]) 查找当前元素之后所有的同辈元素
$("div:first").nextAll()
nextUntil([exp|ele][,fil]) 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止
$('#term-2').nextUntil('dt').css('background-color', 'red');
offsetParent() 返回第一个匹配元素用于定位的父节点 即返回父元素中第一个其position设为relative或者absolute的元素
$("p").offsetParent().css("background-color","red");
parent([expr]) 取得一个包含着所有匹配元素的唯一父元素的元素集合
$("p").parent()
parents([expr]) 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。
$("span").parents()
prev([expr]) 取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合
$("p").prev()
prevAll([expr]) 查找当前元素之前所有的同辈元素
$("div:last").prevAll()
siblings([expr]) 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选。
$("div").siblings()
add(expr|ele|html|obj[,con]) 把与表达式匹配的元素添加到jQuery对象中
$("p").add("span")
文档处理
内部插入
append(content|fn) 向每个匹配的元素内部追加内容
// HTML 代码:
<p>I would like to say: </p>
$("p").append("<b>Hello</b>");
// 结果:
<p>I would like to say: <b>Hello</b></p>
appendTo(content) 把所有匹配的元素追加到另一个指定的元素元素集合中
// HTML 代码:
<p>I would like to say: </p>
<div></div>
<div></div>
$("p").appendTo("div");
//结果:
<div><p>I would like to say: </p></div>
<div><p>I would like to say: </p></div>
prepend(content) 向每个匹配的元素内部前置内容
// HTML 代码:
<p>I would like to say: </p>
$("p").prepend("<b>Hello</b>");
// 结果:
<p><b>Hello</b>I would like to say: </p>
prependTo(content) 把所有匹配的元素前置到另一个、指定的元素元素集合中
// HTML 代码:
<p>I would like to say: </p>
<div id="foo"></div>
$("p").prependTo("#foo");
// 结果:
<div id="foo">
<p>I would like to say: </p>
</div>
after(content|fn) 在每个匹配的元素之后插入内容
// HTML 代码:
<p>I would like to say: </p>
$("p").after("<b>Hello</b>");
// 结果:
<p>I would like to say: </p><b>Hello</b>
before(content|fn) 在每个匹配的元素之前插入内容
// HTML 代码:
<p>I would like to say: </p>
$("p").before("<b>Hello</b>");
// 结果:
<b>Hello</b><p>I would like to say: </p>
insertAfter(content) 把所有匹配的元素插入到另一个、指定的元素元素集合的后面
// HTML 代码:
<p>I would like to say: </p>
<div id="foo">Hello</div>
$("p").insertAfter("#foo");
// 结果:
<div id="foo">Hello</div>
<p>I would like to say: </p>
insertBefore(content) 把所有匹配的元素插入到另一个、指定的元素元素集合的前面
// HTML 代码:
<div id="foo">Hello</div>
<p>I would like to say: </p>
$("p").insertBefore("#foo");
// 结果:
<p>I would like to say: </p>
<div id="foo">Hello</div>
wrap(html|element|fn) 把所有匹配的元素用其他元素的结构化标记包裹起来
$("p").wrap("<div class='wrap'></div>");
unwrap() 这个方法将移出元素的父元素
$("p").unwrap()
replaceWith(content|fn) 将所有匹配的元素替换成指定的HTML或DOM元素。
// HTML 代码:
<p>Hello</p>
<p>cruel</p>
<p>World</p>
$("p").replaceWith("<b>Paragraph. </b>");
// 结果:
<b>Paragraph. </b>
<b>Paragraph. </b>
<b>Paragraph. </b>
replaceAll(selector) 用匹配的元素替换掉所有 selector匹配到的元素
// HTML 代码:
<p>Hello</p>
<p>cruel</p>
<p>World</p>
$("<b>Paragraph. </b>").replaceAll("p");
// 结果:
<b>Paragraph. </b>
<b>Paragraph. </b>
<b>Paragraph. </b>
empty() 删除匹配的元素集合中所有的子节点
// HTML 代码:
<p>Hello, <span>Person</span> <a href="#">and person</a></p>
$("p").empty();
// 结果:
<p></p>>
remove([expr]) 从DOM中删除所有匹配的元素 除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除
// HTML 代码:
<p>Hello</p>
how are
<p>you?</p>
$("p").remove();
// 结果:
how are
detach([expr]) 从DOM中删除所有匹配的元素 与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来
// HTML 代码:
<p>Hello</p>
how are
<p>you?</p>
$("p").detach();
// 结果:
how are
clone([Even[,deepEven]]) 克隆匹配的DOM元素并且选中这些克隆的副本
// HTML 代码:
<b>Hello</b>
<p>, how are you?</p>
$("b").clone().prependTo("p");
// 结果:
<b>Hello</b>
<p><b>Hello</b>, how are you?</p>
动态更新员工表
效果: 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#formDiv0 {
width: 50%;
box-sizing: border-box;
float: left;
}
table {
margin: 0 auto;
width: 80%;
border: 1px solid #ddd;
background-color: antiquewhite;
}
#formDiv1 {
width: 50%;
box-sizing: border-box;
margin-left: 50%;
text-align: center;
}
</style>
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script>
$(function () {
$("#addEmpButton").click(function () {
let $empName = $('#empName');
let $email = $('#email');
let $salary = $('#salary');
let name = $empName.val();
let email = $email.val();
let salary = $salary.val();
let $tr = $('<tr></tr>')
.append('<td>' + name + '</td>')
.append('<td>' + email + '</td>')
.append('<td>' + salary + '</td>')
.append('<td><a href="deldteEmp?id=' + Date.now() + '"">Delete</a></td>')
.appendTo("#employeeTable>tbody")
.find('a')
.click(deleteA)
$empName.val('')
$email.val('')
$salary.val('')
})
$("#employeeTable a").click(deleteA)
function deleteA() {
let $tr = $(this).parent().parent();
let name1 = $tr.children(":first").html();
console.log(name1);
if (confirm(`您确定要删除${name1}`)) {
$tr.remove();
}
return false;
}
})
</script>
</head>
<body>
<div id="formDiv0">
<table id="employeeTable" border="1">
<tr>
<th>Name</th>
<th>Email</th>
<th>Salary</th>
<th> </th>
</tr>
<tr>
<td>Tom</td>
<td>Tom@tom.com</td>
<td>5000</td>
<td><a href="deldteEmp?id=001">Delete</a></td>
</tr>
<tr>
<td>Jerry</td>
<td>Jerry@sohu.com</td>
<td>8000</td>
<td><a href="deldteEmp?id=002">Delete</a></td>
</tr>
<tr>
<td>Bob</td>
<td>bob@sohu.com</td>
<td>1000</td>
<td><a href="deldteEmp?id=003">Delete</a></td>
</tr>
</table>
</div>
<div id="formDiv1">
<table border="1">
<thead>
<th colspan="2">
添加新员工
</th>
</thead>
<tr>
<td class="word">name: </td>
<td class="inp">
<input type="text" name="empName" id="empName">
</td>
</tr>
<tr>
<td class="word">email: </td>
<td class="inp">
<input type="text" name="email" id="email">
</td>
</tr>
<tr>
<td class="word">salary: </td>
<td class="inp">
<input type="text" name="salary" id="salary">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<button id="addEmpButton" value="abc">Submit</button>
</td>
</tr>
</table>
</div>
</body>
</html>
|