JQuery 筛选&文档处理

    这节课是JQuery的第三节课,主要讲JQuery筛选和文档处理,还有三节课就要结束JQuery的课程啦。还是一样有问题在下方评论,或者私信小编噢,看到了会给大家解答的。


 一.过滤

    1.first() 匹配第一个元素

// first() 匹配第一个元素  两种写法
	console.log($("li").first());
	console.log($("li:first"));

    2.last() 获取最后一个元素

// last() 获取最后一个元素
	// 两种写法
	console.log($("li").last());
	console.log($("li:last"));
	

 3. eq获取第几个元素

// eq获取第几个元素
	console.log($("li").eq(2));//$对象
	console.log($("li").get(0));//js对象

4.filter()  拿到指定的的元素

// 拿到指定的的元素 filter
	// 拿到li标签中 class名为aa
	console.log($("li").filter(".aa"));

 5. has() 筛选出包含特定特点的元素集合

// 只要p标签的父元素li
	console.log($("li").has("p"));
	console.log($("li").has(".bb"));

6. not(): 筛选不包含该特点的元素 

// not筛选不包含该特点的元素
	console.log($("li").not(".aa"));


 二.查找

1.children()子标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>
	
	// 拿到ul的子标签
	// children()子标签
	console.log($("ul").children());
	
	// 拿到ul中的class名为aa子元素
	 console.log($("ul").children(".aa"));
	 
	
	</script>
	</body>
</html>

 2.find() 后代标签中

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>
	
	 
	 // 拿出ul中的p标签(拿到后代 孙子)
	 // find 后代标签中
     console.log($("ul").find("p"));

	</script>
	</body>
</html>

3.parent ():拿父元素

   parents():拿到该标签的所有父元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>
	
	// 拿父元素
	// parent
	console.log($(".aa").parent());
	// parents:拿到该标签的所有父元素
	console.log($("p").parents("ul"));
	
	</script>
	</body>
</html>

 4.prevAll() 拿到该元素前面所有的兄弟节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>
	
	//prevAll() 拿到该元素前面所有的兄弟节点
	console.log($(".cc").prevAll());
	
	
	</script>
	</body>
</html>

 5.nextAll() 拿到该元素后面所有的兄弟节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>
	
	// nextAll() 拿到该元素后面所有的兄弟节点
	console.log($(".cc").nextAll());
	
	
	</script>
	</body>
</html>

 6.siblings() 拿到该元素前面和后面的所有兄弟节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	<ul>
		<li class="aa">嘻嘻</li>
		<li class="aa">嘻嘻</li>
		<li>嘻嘻</li>
		<li class="cc">嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li>嘻嘻</li>
		<li><p class="bb">嘻嘻</p></li>
		<li>嘻嘻</li>
	</ul>
	
	<script src="jquery-3.5.1.js"></script>
	
	<script>

	
	// siblings() 拿到该元素前面和后面的所有兄弟节点
	console.log($(".cc").siblings());
	
	
	
	</script>
	</body>
</html>


三.增加 

1.append : 将内容添加到指定元素的后面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>
	// 在p标签后面追加
	// append : 将内容添加到指定元素的后面
	$("p").append("哈哈哈");
	$("p").append("<b>你好啊</b>")
	
	
	</script>
	</body>
</html>

 2.appendTo: appendTo和append颠倒的

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		
	</head>
	<body>
	
	<span>I would like to say: </span>
	<div></div><div></div>
	
	<script>
	
	// appendTo和append颠倒的
	// appendTo:把span标签追加进div标签中
	$("span").appendTo("div");
	
// 创建标签
	let i=document.createElement("i");
	// 给i标签设置内容
	i.textContent="xixi";
	// 将i标签加入吧p标签中
	$("p").append(i);
	
	// jquery 
	// 这一步就是创建一个标签
	let j=$("<u>");
	// 给j标签设置内容 jquery给标签设置内容用text
	j.text("略略略");
	// 追加到p标签里
	 $("p").append(j);
	
	</script>
	</body>
</html>

 3. prepend:将内容添加到指定的元素前面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>
	
	// jquery 
	// 这一步就是创建一个标签
	let j=$("<u>");
	// 给j标签设置内容 jquery给标签设置内容用text
	j.text("略略略");
	// 追加到p标签里
	 $("p").append(j);
	
	// prepend:将内容添加到指定的元素前面
	// 把j添加到p标签前面
	$("p").prepend(j);
	
	
    
	</script>
	</body>
</html>

4. prependTo:与prepend颠倒  

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>

	</head>
	<body>
	<p></p>
	<span>I would like to say: </span>
	<div></div><div></div>
	
	<script>
	
	// prependTo:与prepend颠倒 
	// 把span标签加在div标签前面
	$("span").prependTo("div")
  
	</script>
	</body>
</html>

 5.cloneNode():复制元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		
	</head>
	<body>
	<p></p>
	
	
	<script>
	
	
	// jquery 
	// 这一步就是创建一个标签
	let j=$("<u>");
	// 给j标签设置内容 jquery给标签设置内容用text
	j.text("略略略");
	// 追加到p标签里
	 $("p").append(j);
	
	
	
	//复制元素cloneNode
	// 复制j 把j加入p标签前面
	$("p").prepend(j.get(0).cloneNode(true));
	
	// 把JS转成$ 使用get
	// 把$转成js $(里面放入js)
	let u=document.getElementsByName("u")[0];
	$("u").text("123");

	</script>
	</body>
</html>

6.before() :在匹配元素之前插入内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>
	
	// jquery 
	// 这一步就是创建一个标签
	let j=$("<u>");
	// 给j标签设置内容 jquery给标签设置内容用text
	j.text("略略略");
	// 追加到p标签里
	 $("p").append(j);

     // 将j放在p标签之前
	 $("p").before(j);

	</script>
	</body>
</html>

 7.after()在匹配元素之后插入内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>
	
	
	// jquery 
	// 这一步就是创建一个标签
	let j=$("<u>");
	// 给j标签设置内容 jquery给标签设置内容用text
	j.text("略略略");
	// 追加到p标签里
	 $("p").append(j);
	
	
	 // 在p标签之后插入
	 $("p").after("hhhh");
	 
	
    
	</script>
	</body>
</html>


 四.删除

1. empty():删除匹配元素的子元素 (不包括匹配的元素)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>

	 // empty()删除匹配元素的子元素 (不包括匹配的元素)
	 $("p").empty();
	 

	</script>
	</body>
</html>

2.remove() :删除匹配元素的子元素 (包含匹配元素)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		<style>
		p{
			border :10px solid aliceblue;
		}
		</style>
	</head>
	<body>
	<p></p>
	
	
	<script>
	
	 // remove() 删除匹配元素的子元素 (包含匹配元素)
	 $("p").remove();
	 
	
    
	</script>
	</body>
</html>

  


 五.改

1.replaceWith() :将所有匹配元素替换成指定内容 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
		
	</head>
	<body>
	<p></p>
	
	
	<script>

	 // replaceWith 将所有匹配元素替换成指定内容
	 console.log($("li").replaceWith("<u>哈哈哈哈</u>"));
    
	</script>
	</body>
</html>


六.题目演练

题目一: 点击删除按钮时,删除该行

           大家先自己写一下,下方有代码参照

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="jquery-3.5.1.js"></script>
	</head>
	<body>
		<table border>
			<tr>
				<td>嘻嘻</td>
				<td>哈哈</td>
				<td>呵呵</td>
				<td><button onclick="$(this).parents('tr').remove()">删除</button></td>
			</tr>
			
			<tr>
				<td>嘻嘻</td>
				<td>哈哈</td>
				<td>呵呵</td>
				<td><button onclick="$(this).parents('tr').remove()">删除</button></td>
			</tr>
			
			
		</table>
	</body>
</html>

 题目二:写一个菜单类似的,当你点击时展开,再点击关闭,点击另外的菜单时,原先点开的收起来

先自己写一下,下方代码提供给大家参考。 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<style>
		ol{
			display: none;
		}
		
		.bb{
			
			color: chartreuse;
		}
		
		 .bb ol{
		  display: block;
		        }
		</style>
		
	</head>
	<body>
		<script src="jquery-3.5.1.js"></script>
		<ul>
		    <li>
		        <p>电器</p>
		        <ol>
		            <li>冰箱</li>
		            <li>电视机</li>
		            <li>洗衣机</li>
		            <li>吹风机</li>
		        </ol>
		    </li>
		    <li>
		        <p>水果</p>
		        <ol>
		            <li>菠萝</li>
		            <li>西瓜</li>
		            <li>哈密瓜</li>
		            <li>草莓</li>
		        </ol>
		    </li>
		    <li>
		        <p>奶茶</p>
		        <ol>
		            <li>烧仙草</li>
		            <li>葡萄啵啵</li>
		            <li>草莓啵啵奶茶</li>
		            <li>金桔柠檬</li>
		        </ol>
		    </li>
		</ul>
		
		<script>
		
		$("p").click(function(){
		// 先拿到他的父类
		let li=$(this).parents("li");
		// 判断他是否有class
		 //移除其他(兄弟)菜单的激活样式
	    li.siblings().removeClass("bb")
		// 判断是否有class属性  有的话移出class
		if(li.hasClass("bb")){
			return li.removeClass("bb")
		}
		li.addClass("bb");
		})
		
		</script>
	</body>

 今天的学习到此结束,大家好好敲代码噢

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值