【JavaWeb】第五章 jQuery(中篇)

news2024/11/24 2:49:37

🍁【JavaWeb】第五章 jQuery(上篇)

文章目录

  • 9、内容过滤选择器
  • 10、属性过滤选择器
  • 11、表单过滤器
  • 12、元素的筛选
  • 13、jQuery属性操作之html()、text()、val()方法
  • 14、jQuery属性操作之attr()和prop()

9、内容过滤选择器

1):contains(text) 匹配包含给定文本的元素

//查找所有包含code的div元素
$("div:contains("code")");

2):empty 匹配所有不包含子元素或者文本的空元素

//空元素即起始标签和结束标签中间没有东西
$("div:empty")

3):parent 匹配含有子元素或者文本的元素

//即找非空的
$("div:parent")

4):has(selector) 匹配含有选择器所匹配的元素的元素

<div><p>Hello</p></div>
<div>Hello again!</div>
//给所有包含p元素的div元素加上一个text类
$("div:has(p)").addClass("text");

结果:

<div class="text"><p>Hello</p></div>

10、属性过滤选择器

1)[attribute] 匹配包含给定属性的元素

//查找所有含有id属性的div元素

$("div[id]");

2)[attribute=value] 匹配给定的属性是某个特定值的元素

//查找所有id属性值为sletter的div元素

$("div[id='sletter']");

3)[attribute!=value] 匹配所有不包含指定的属性,或者属性不等于特定值的元素

//查找所有name属性不是newsletter或者没有name属性的input元素

$("input[name!='newsletter']").attr("checked",true);

4)[attribute^=value] 匹配给定的属性是以某些值开始的元素

//查找所有name以news开始的input元素

$("input[attribute^='news']");

5)[attribute$=value] 匹配给定的属性是以某些值结尾的元素

//查找所有name以letter结尾的input元素

$("input[name$='letter']");

6)[attribute*=value] 匹配给定的属性值是以包含某些值的元素

//查找所有name包含man的input元素

$("input[name*='man']");

7)[attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同事满足多个条件时使用

//查找所有含有id属性,并且它的name属性是以man结尾的input元素

$("input[id][name$='man']");

11、表单过滤器

1):input
匹配所有的input、textarea、select和button元素

$(":input");

2):text
匹配所有的单行文本框,即找<input type=“text”/>

$(":text");

3):password
查找所有的密码框元素

$(:"password");

4):radio
查找所有的单选按钮

$(":radio");

5):checkbox
查找所有的复选框

$(":checkbox");

6):submit
查找所有的提交按钮

$(":submit");

7):image
查找所有的图像

$(":image"):

8):reset
查找所有的重置按钮

$(":reset");

9):button
查找所有的按钮

$(":button");

10):file
查找所有的文件域

$(":file");

11):hidden
匹配所有不可见的元素,或者type为hidden的元素

//不可见元素,如style="display:none"...

$(":hidden");

12):enabled
匹配所有可用元素。所谓可用不可用,如给input标签加一个disabled=“disabled”,如此本来能输入的框框就变的不能输入了

//查找所有可用的input元素
$("input:enabled");

13):disabled
匹配所有不可用元素

$(":disabled");

14):checked
匹配所有选项中的被选中元素(单选框、复选框等,不包括select中的option)

$(":checked");

15):selected
匹配所有选中的option元素

$("select option:selected");

在这里插入图片描述
综合练习:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单过滤练习</title>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function(){
            //对表单内可用的input文本框赋值
            $("#btn01").click(function(){
                //val()方法可以操作表单项的value属性值
                //传值就是设置,不传就是获取
                $(":text:enabled").val("变变变");
            });
            //对表单内不可用的input文本框赋值
            $("#btn02").click(function(){
                $(":text:disabled").val("变!");
            });
            //获取多选框选中的个数
            $("#btn03").click(function(){
                alert($(":checkbox:checked").length);
            });
            //获取多选框,每个选中的value值
            $("#btn04").click(function(){
                //获取全部选中的复选框标签对象
                var $checkObjs = $(":checkbox:checked");
                //老式遍历
                for(var i=0; i<$checkObjs.length;i++){
                    alert($checkObjs[i].value);
                }
                //each方法是jquery对象提供的用来遍历元素的方法
                //在遍历的function函数中,有一个this对象,这个this就是遍历到的dom对象
                $checkObjs.each(function(){
                    alert(this.value);
                });
            });
            //获取下拉框选中的内容
            $("#btn05").click(function(){
                //获取选中的option对象
                var $options = $("select option:selected");
                //遍历,获取option标签中的文本内容
                $options.each(function(){
                    alert(this.value);
                });
            });
        });
    </script>
</head>
<body>
    <button id="btn01">对表单内可用的input文本框赋值</button><br/>
    <button id="btn02">对表单内不可用的input文本框赋值</button><br/>
    <button id="btn03">获取多选框选中的个数</button><br/>
    <button id="btn04">获取多选框,每个选中的value值</button><br/>
    <button id="btn05">获取下拉框选中的内容</button><br/>
    可用:<input type="text" value="可用的文本框"/><br/>
    不可用:<input type="text" value="不可用的文本框" disabled="disabled"/><br/>
    可用:<input type="text" value="可用的文本框"/><br/>
    <input type="checkbox"/>test1<input type="checkbox" />test2<input type="checkbox"/>test3<br/>
    下拉框测试<select>
        <option>test1</option>
        <option>test2</option>
        <option selected="selected">test3</option>
    </select><br/><br/>
    多选下拉框
    <!--multiple="multiple"是多选下拉框的属性-->
    <select multiple="multiple">
        <option selected="selected">加油</option>
        <option>努力</option>
        <option>奋斗</option>
        <option selected="selected">牛的</option>
    </select>
</body>
</html>

each方法是jquery对象提供的用来遍历元素的方法,在遍历的function函数中,有一个this对象,这个this就是遍历到的dom对象。

运行效果:
在这里插入图片描述

12、元素的筛选

  • eq(index),功能跟 :eq() 一样,即获取给定索引的元素
//获取匹配到的第二个p元素

$("p").eq(1);
  • first(),功能跟 :first 一样
//获取匹配的第一个li元素

$("li").first();
  • last(),功能跟 :last 一样
//获取最后一个li标签

$("li").last()
  • filter(exp) ,留下匹配的元素
//保留带有selected类的p元素(class筛选)

$("p").filter(".selected");
  • is(exp),判断是否匹配给定的选择器,只要有一个匹配就返回true
//判断复选框的父元素是不是form

$("input[type='checkbox']").parent().is("form");

//true
  • has(exp),功能跟.has一样,返回包含有匹配选择器的元素的元素
//测试素材代码
<div>div1</div>
<div>div2</div>
<div>div3 <span>div中的span</span></div>

//查找含有span标签的div标签的长度
$(function(){
	alert( $("div").has("span").length );
}
);
//1
  • not(exp),删除匹配选择器的元素,功能跟 :not 一样
//从p元素中删除带有selected的id的元素
<p>Hello</p>
<p id="selected">Hello again</p>
--------
$("p").not($("#selected")[0]);
//这里的[0]是变成dom对象,但测试了一下,加不加都能成功
  • children(exp),返回匹配给定选择器的子元素,功能跟parent>child一样
//查找body中的每个class为one的div子元素

$("body").children("div.one");
  • find(exp),返回给定选择器的后代元素,功能跟”祖先 后代“选择器一样
//从所有段落开始,搜索下面的class为min的span元素
//复习:
//$("p span");
$("p").find("span.min");
  • next(),返回当前元素的下一个兄弟元素,功能跟prev + next一样
//找到每个段落后面紧邻的同辈div元素

$("p").next("div");
  • nextAll(),返回当前元素后面的所有兄弟元素,功能跟prev~siblings一样
//给第一个div元素后面的所有兄弟元素加个类
<div></div>
<div></div>

$("div:first").nextAll().addClass("addClass");

运行结果:
在这里插入图片描述

  • nextUntil(),返回当前元素到指定元素为止的元素(开区间)
<div></div>
<div></div>
<div></div>
<span></span>
<div></div>
------------
$(function(){
	$("div":first).nextUntil("span").addClass("addClass");
}):

运行:
在这里插入图片描述

  • parent()返回父元素
//查找每个段落元素的父元素

$("p").parent():
  • prev(),返回当前元素的上一个兄弟元素
//返回每个段落的前一个同辈元素

$("p").prev();
  • prevAll(),返回当前元素前面的所有兄弟元素
//给最后一个div之前的所有兄弟元素加上class属性

$("div:last").prevAll().addClass("9527");
  • prevUntil(),返回当前元素到指定匹配的元素为止的元素,向上匹配,和nextUntil()方向相反
//给最后一个span元素,到前面的h2元素之间的元素加class属性

$("span":last).prevUntil("h2").addClass("addClass");
  • siblings(exp),返回所有兄弟元素
//返回span元素的所有兄弟元素,即前后都算

$("span").siblings();
  • add(),把add匹配的选择器元素加到当前的jQuery对象中
//本来只返回div元素,加入add后,返回的元素中多了span,可以用下标取出验证

$("div").add("span");
//查找所有的span元素和id为two的元素

$("span").add("#two").css("background-color","#bfa");

13、jQuery属性操作之html()、text()、val()方法

  • html()方法:
    设置和获取起始标签和结束标签之间的内容,跟dom属性innerHTML一样

  • text()方法:
    设置和获取起始标签和结束标签中的文本,跟dom属性innerText一样

  • val()方法:
    设置和获取表单项的value属性值,跟dom属性的value一样

不传参数是获取,传递参数是设置

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
    $(function(){
    	//获取内容
    	alert( $("div").html() );
    	//设置内容
    	$("div").html("<h1>div中的标题</h1>");
    	//获取文本
    	alert( $("div").text() );
    	//设置文本
    	$("div").text("<h1>div中的标题</h1>")
    	//获取表单项value
    	$("button").click(function(){
    		alert( $("#usernameId").val() );
    		$("#usernameId").val("这里是value属性的显示");
    	});
    });
    
    
    
    </script>
</head>
<body>
	<div>divTag <span>div中的span</span></div>
	<input type="text" name="username" id="usernameId" />
	<button>获取表单项内容并重新赋值</button>
</body>
</html>   

运行效果:
在这里插入图片描述

val方法还能同时设置多个表单项的选中状态:

<body>
	单选:
	<input name="radio" type="radio" value="radio1"/>radio1
	<input name="radio" type="radio" value="radio2"/>radio2
	<br/>
	多选:
	<input name="checkbox" type="checkbox" value="checkbox1"/>checkbox1
	<input name="checkbox" type="checkbox" value="checkbox2"/>checkbox2
	<input name="checkbox" type="checkbox" value="checkbox3"/>checkbox3
	<br/>
	下拉多选:
	<select id="multiple" multiple="multiple" size="4">
		<option value="mul1">mul1</option>
		<option value="mul2">mul2</option>
		<option value="mul3">mul3</option>
		<option value="mul4">mul4</option>
	</select>
	<br/>
	下拉单选:
	<select id="single">
		<option value="sin1">sin1</option>
		<option value="sin2">sin3</option>
		<option value="sin3">sin3</option>
	</select>
</body>
<script type="text/javascript" src="../js/jquery.js"></script>
<script>
	$(function(){
		//操作单选框,使得value="radio2"的单选框被选中
		$(":radio").val(["radio2"]);
		//批量操作复选框
		$(":checkbox").val(["checkbox2","checkbox3"]);
		//批量操作下拉框
		$("#multiple").val(["mul2","mul4"]);
		//单选下拉框
		$("#single").val(["sin3"]);
	});
	
</script>

运行效果:
在这里插入图片描述

当然也可一起来操作,不分单选、多选、下拉

$(":radio,:checkbox,#multiple,#single").val(["radio2","checkbox1","checkbox3","mul2","sin3"]);

14、jQuery属性操作之attr()和prop()

二者都可以设置和获取属性的值,区别如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script>
	$(function(){
	    //传一个key是获取
        alert($(":checkbox:first").attr("name"));
        //传两个是设置
        $(":checkbox:first").attr("name","9527");
        //使用attr获取未选中状态
        alert( $(":checkbox:last").attr("checked") );  //返回一个undefined
        //使用prop获取未选中状态
        alert( $(":checkbox:last").prop("checked") );  //返回false
        //操作选中状态(由checked属性决定)
        $(":checkbox:last").attr("checked","checked");
        //使用attr获取选中状态
        alert( $(":checkbox:last").attr("checked") );  //返回checked
        //使用prop获取选中状态
        alert( $(":checkbox:last").prop("checked") );  //返回true
	});

</script>

</head>
<body>

<br/>
多选:
<input name="checkbox" type="checkbox" value="checkbox1"/>checkbox1
<input name="checkbox" type="checkbox" value="checkbox2"/>checkbox2
<input name="checkbox" type="checkbox" value="checkbox3"/>checkbox3
<br/>

</select>
</body>
</html>

所以:
二者都可以设置和获取属性的值,区别如下:

  • attr()方法不推荐操作checked、readOnly、selected、disabled……
  • prop()方法只推荐操作checked、readOnly、selected、disabled,它的出现就是弥补了attr()
//使用prop操作全部不选中
$(":checkbox").prop("checked",falsse);

此外,attr方法还可以操作非标准的属性,比如设置和获取自定义属性abc

//设置
$(":checkbox:first").attr("abc","abcvalue");

小练习–全选、全不选

//给全选绑定单击事件
//全不选则prop为false

$(function(){
	$("#checkedAllBtn").click(function(){
		$(":checkbox").prop("checked",true);
	});
});

//反选
$(function(){
	$("#checkedNoBtn").click(function(){
		//each函数遍历
		$(":checkbox").each(function(){
			//this代表当前遍历到的dom对象
			this.checked = !this.checked;	
	});
});
//实现:当所有name=items的复选框被选中的时候,全选框被自动选中

//获取全部复选框个数
var allCount = $(":checkbox[name='items']").length
//获取被选中的复选框个数
var checkedCount = $(":checkbox[name='items']:checked").length

if(allCount == checkedCount){
	$("#checkedAllBox").prop("checked",true);
}else{
	$("#checkedAllBox").prop("checked",false);
}
//后面这个if语句整体优化:
$("#checkAllBox").prop("checked",allCount == checkedCount);

之间旧的实现思路复习:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web大作业 静态网页 HTML+CSS+JavaScript橙色的时尚服装购物商城

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

(十)Java算法:归并排序(详细图解)

目录一、前言1.1、概念1.2、算法原理二、maven依赖三、流程解析3.1、整体流程图3.2、合并流程图四、编码实现一、前言 1.1、概念 归并排序&#xff1a;是建立在归并操作上的一种有效的排序算法。该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的…

Linux 安装Nginx详细图解教程

文章目录概述&#xff1a;安装步骤&#xff1a;1. 安装依赖&#xff08;安装过的跳过&#xff09;2. 下载nginx安装包3. 解压nginx安装包4. 安装安装nginx5. 启动nginx服务6. 配置nginx.conf7. 防火墙开端口8. 浏览器输入概述&#xff1a; nginx作为轻量http服务器&#xff0c…

11.22二叉树相关OJ

目录 一.每天学一个知识点 1.涉及公式 1.s.trim() 2.substring() 可以看出是满足一系列合法条件的时候,就会返回一个新的字符串. 1.思路1 栈 思路2:stringbulider 二,二叉树相关OJ题 1.检查两颗树是否相同 2.另一颗树的子树。 3.判断一颗二叉树是否是平衡二叉树 1.时…

大数据培训课程GroupingComparator分组案例实操

GroupingComparator分组案例实操 1&#xff0e;需求 有如下订单数据 表4-2 订单数据 现在需要求出每一个订单中最贵的商品。 &#xff08;1&#xff09;输入数据 &#xff08;2&#xff09;期望输出数据 1 222.8 2 722.4 3 232.8 2&#xff0e;需求…

python数学建模--时间序列模型--指数平滑

目录时间序列指数平滑一次指数平滑预测示例二次指数平滑预测示例三次指数平滑本博客参考&#xff1a;《python数学实验与建模 》 时间序列 时间序列数据是按照时间顺序排列的、随着时间变化且相互关联的数据序列&#xff0c;这类数据往往反映了某一事物、现象等随时间的变化状…

升级光伏供应链体系,供应商系统规范供应商管理,促进企业与供应商高效协同

作为过去十年我国发展最快的可再生能源&#xff0c;截止到2020年光伏累计装机量达到253GW&#xff0c;过去10年复合增长率达到20%以上&#xff0c;新增光伏装机48.2GW&#xff0c;同比增长60%。全球可再生能源署预计2050年光伏累计装机规模将达8519GW&#xff0c;成为最主流的电…

【MySQL】 B+ 树存储的原理

1. B 树 和 B 树 B Tree 模拟生成工具&#xff1a;https://www.cs.usfca.edu/~galles/visualization/BTree.html BTree 模拟生成工具&#xff1a; https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html B 树 —— 1970年&#xff0c;R.Bayer和E.mccreight提出了一种…

[附源码]java毕业设计学生量化考核管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

LIN休眠唤醒及测试心得

上期LIN测试小课堂&#xff0c;我们分享了LIN总线帧结构及各场干扰&#xff0c;如何测试样件是否不响应错误的帧结构。 这次我们的介绍主题是LIN休眠唤醒&#xff0c;一起看看标准和差异性&#xff0c;开发和测试的关系&#xff0c;实际的案例分享也来了。 一、LIN控制器休眠…

编译原理—语义分析、语法制导翻译、翻译模式、中间代码生成

编译原理—语义分析、语法制导翻译、翻译模式、中间代码生成语法制导翻译语法制导定义(属性文法)翻译模式后缀式图示表示法构建表达式的语法树中间代码的种类三地址码四地址码对比举例中间代码产生的场景说明语句的翻译举例嵌套说明语句的翻译方案相关定义举例过程嵌套声明记录…

BDP FL-PEG5-炔丙基,2093197-93-2,BDP FL-PEG5-propargyl是一种 BDP FL 接头

BDP FL-PEG5-propargyl ​中英文名&#xff1a; CAS号&#xff1a;2093197-93-2| 英文名&#xff1a;BDP FL-PEG5-propargyl |中文名&#xff1a;BDP FL-五聚乙二醇-炔基&#xff0c; BDP FL-PEG5-炔丙基BDP FL-PEG5-propargyl ​物理参数&#xff1a; CASNumber&#xff1a;20…

微信小程序基础学习(5):使用 npm包、全局数据共享、分包

1. 使用 npm包 1.1 小程序对 npm 的支持与限制 目前&#xff0c;小程序中已经支持使用 npm 安装第三方包&#xff0c;从而来提高小程序的开发效率。但是&#xff0c;在小程序中使用 npm 包有如下 3 个限制&#xff1a; 不支持依赖于 Node.js 内置库的包。不支持依赖于浏览器…

查看进程信息(ps、top) + 操作后台进程(jobs、bg、fg)

目录 1、查看进程信息 (1) 查看进程快照 —— ps (2) 查看进程的动态信息 —— top (3) 查看进程的详细信息 —— /proc 2、操作后台进程 (1) 将进程转为后台 (2) 将后台进程转为前台运行 fg (3) 查看后台进程 jobs 1、查看进程信息 (1) 查看进程快照 —— ps 所谓…

Word控件Spire.Doc 【图像形状】教程(3) :在 C#/VB.NET 中的指定位置插入图像

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

【无标题】接口测试遇到的典型bug纪录

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Java#22(内部类)

目录 一.内部类 1.什么是内部类? 2.什么时候用? 3.特点 二.成员内部类,静态内部类,局部内部类(稍微了解即可) 1.获取成员内部类对象的两种方式? 2.外部类成员变量和内部类成员变量重名时&#xff0c;在内部类如何访问? 2.静态内部类 3.局部内部类 三. 匿名内部类…

verdi基础操作

看波形&#xff1a; 1.代码里选中&#xff0c;再按鼠标中键拖进去 2.选中&#xff0c;ctrlw 3.用get signal 在波形框中&#xff0c;按照鼠标左键再左右移动&#xff0c;可以放大这一部分的波形&#xff0c;还有下面的功能键可以用 删除波形&#xff1a; 按delete或者cut掉…

如何压缩图片200k以下?

“图片过大无法上传”&#xff0c;“因您上传的图片大小超过限制”这样的提示大家都有遇到过吧&#xff1f;这就是告诉我们现在的图片需要压缩一下才能继续使用了&#xff0c;否则我们就无法使用当前照片了。 那有很多平台&#xff0c;特别是上传一些证件照的时候&#xff0c;要…

北京筑龙获爱分析采购数字化报告大满贯, 领跑供应链协同市场

2022年11月21日&#xff0c;国内领先的数字化市场研究咨询机构爱分析发布了《2022爱分析采购数字化厂商全景报告》&#xff08;以下简称《报告》&#xff09;。北京筑龙凭借专业的数字化技术、采购供应链数字化经验以及在政企数字化领域积累的丰富项目实践经验&#xff0c;成功…