表格全选,获取复选框中的值,联动效果,表单校验之插件

上期回顾

就绪函数

jQuery(document).ready(function(){

 

});

$(function(){});//简写

 

事件:和js 比较jQuery要去掉on

 

//取值

document.getElementById().value;

$(”选择器”).val();

//赋值

document.getElementById().value = ?;

$(”选择器”).val(?);

 

“我是空格”   获取跨层级子孙元素。

 

基本选择器

ID

CLASS

标签

层级选择器

> 子标签

+ 同级下的下一个兄弟标签

~ 同级下的所有兄弟标签

过滤选择器

:first

:last

:eq(index)

:lt(index) <

:gt(index) >

:even 偶数

:odd 奇数

属性选择器

[属性名=’属性值’]

[属性名!=’属性值’]

[属性名$=’我是字符串’]  后缀包含

表单选择器

禁用:disabled

激活:enabled

被点击:checked

被选择:selected

 

jQuery特效

show(time,fn) | hide(time,fn)   单位 毫秒

fadeIn() | fadeOut | fadeToggle

slideDown() | slideUp | slideToggle

 

jQuery 操作css

对象.css(”属性名”,”属性值”)

对象.addClass()

对象.removeClass()

this关键字

关于this关键字的使用。https://www.cnblogs.com/diantao/p/4514238.html

$(this)  |  this

两个获取的都是对象但是不同,使用的时候必要时可相互转换。

var obj1 = document.getElementById(?);

var obj2 = $(”#?”);

$(this)这个是jQuery读取对象的方式,所以后面只能书写jQuery的形式

this 的形式是直接从循环或者事件中读取JavaScript对象。 操作的时候必须使用JavaScript的形式进行操作

案例:表格的全选/全不选功能

  1. 给按钮绑定点击事件
  2. 获取除表头中选框之外的所有选框对象
  3. 分别给一下获取的选框修改属性  checked
  4. 想办法保证表头的选择的状态和下面的选框状态一致。
  5. attr和prop的使用:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title></title>
			<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
			<script>
				//实现表格的全选全不选功能
				$(function(){//就绪函数一定要写
					$(".firstcheck").click(function(){//通过类名获取对象,绑定click事件,事件中再写一个匿名函数来实现该事件的功能
						var s1=this.checked;//获取click绑定的标签的是否选中的状态,this是js中的,可以直接调用属性,返回的是true或false,也可以写成jQuery形式,如下
                       // var s1 = $(this).prop("checked");//不能用attr,这两个是有点差别的
						$("[name='subcheck']").prop("checked",s1);//把这个状态赋值给获取到的所有子标签的checked属性
				//实现获取到选中标签的值的效果
					});
//定义事件,点击标签之后执行后续操作,获取值的操作必须放到该事件里面,否则会报错
					$("#bu").click(function(){
						
//获取所有name=checked并且为状态为checked的标签的对象,不能直接获取val(),因为他是一个值的数组,只会显示第一个的值,					
							var s2=$("[name='subcheck']:checked");
							var s3="";
							s2.each(function(){//遍历s2这个对象数组
								s3+=","+$(this).val();//字符串拼接或者这种写法s3+=","+this.value;
							});
							s3=s3.substring(1);//字符串截取,可以只写开始,意味着从这个位置开始截取到最后一个;
							alert(s3);
						});
				});
			</script>
	</head>

	<body>
		<center>
			<table border="2px" cellspacing="0" cellpadding="5px">
				<tr>
					<input type="button" id="bu" value="batchDelete"  /><br /><br />
					<th><input type="checkbox" name="firstcheck" class="firstcheck" value="0" /></th>
					<th>角色</th>
					<th>技能</th>
				</tr>
				<tr>
					<td><input type="checkbox" name="subcheck" id="subcheck1" value="悟空" /></td>
					<td align="center">孙悟空</td>
					<td>龟派气功,元气弹,瞬间移动,超级赛亚人4</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="subcheck" id="subcheck2" value="贝吉塔" /></td>
					<td align="center">贝吉塔</td>
					<td>超级赛亚人4,超级赛亚人3</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="subcheck" id="subcheck3" value="克林" /></td>
					<td align="center">克林</td>
					<td>元气斩</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="subcheck" id="subcheck4" value="比克" /></td>
					<td align="center">比克</td>
					<td>魔贯光杀炮</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="subcheck" id="subcheck5" value="悟饭" /></td>
					<td align="center">悟饭</td>
					<td>潜力股</td>
				</tr>
			</table>
		</center>
	</body>
</html>

案例:联动效果

对象.html()  //以HTML形式获取或者填充

对象.text()  //以文本形式获取或者填充  

对象.each(匿名函数) //可以遍历对象

$.each(数组,function(index,value)) 循环的使用   // 可以直接循环数组

思路

  1. 两个数组 省级数组一维,市级信息是二维的。
  2. 将省级信息填充到省级下拉列表中
  3. 省级下拉列表绑定change事件
  4. 获取省级当前选中的value值
  5. 根据value值取到对应的市级数组
  6. 将找到的市级信息填充到市级下拉列表中
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
		<style type="text/css">
			select{
				width: 200px;
			}
			div{
				font-family: "楷体";
				font-size: 20px;
				color: blue;
			}
		</style>
		<script>
			$(function(){
				//1.创建省市数组
				var province_arr=["内蒙古自治区","广东省","河北省","北京市"];
				var city_arr=[["呼和浩特市","包头市","赤峰市","锡林郭勒盟"],["东莞市","佛山","珠海","深圳","中山"],["石家庄","保定","邯郸","唐山"],["朝阳区","海淀区","丰台区","大兴区"]];
				//2.绑定省中的内容
				var province_arr_str="<option value=''>===请选择===</option>"; //网页一加载默认显示的内容,注意在双引号里面不能再出现双引号,如需要,用单引号代替
				
/*$.each(arr,function(index,value))方法,可直接遍历数组,内含两个参数,一个是要遍历的数组,一个是回调的函数,
 回调函数中又包含了两个参数,一个是下标索引,一个是该索引对应的值*/
				$.each(province_arr,function(index,value){
					province_arr_str+=("<option value='"+index+"'>"+value+"</option>");//输出的效果是  “<option value="index">value<option>”
				});
				
				$("#province").html(province_arr_str);//把option标签的内容添加到selected下
				
/*3.给省级标签绑定事件,思路是当省级标签被选择后内容发生改变要用change,click也可以,当发生改变时就获取当前
发生改变的这个索引,然后去二维数组中获取该下表的值,显示在市级标签上,这就完成了联动*/
				$("#province").change(function(){
					var province_current_index=$(this).val();
					city_arr_detail=city_arr[province_current_index];//根据当前省级下标获取对应的二维市级数组中的一维数组

/*4.使用获得的省级标签的下标调用对应的市级标签之后,遍历该一维数组并拼接字符串放到市级标签下*/
					var city_arr_str="<option value=''>===请选择===</option>";
					$.each(city_arr_detail,function(index,value){
						city_arr_str+=("<option value='"+index+"'>"+value+"</option>");
					});
					
					//5.填充进市级标签中
					$("#city").html(city_arr_str);
				});
			});
		</script>
	</head>
	<body>
		<center>
			<div>省市联动</div>
			<select id="province" value="省"></select>
			<select id="city" value="市">
				<option value=''>===请选择1===</option><!--会被覆盖掉-->
<!--这里必须得写,为什么第一个不用写呢?因为第一个在加载之后就默认显示了不用什么东西来调用它,而这里的请
选择是需要change事件来调用他的所以必须在这里就写出来,否则网页加载出来后第二个下拉框是没有默认值的-->
			</select>
		</center>
	</body>
</html>

表单校验(jQuery插件)validate.js

validate校验的意思 validate.js是jQuery的一个插件,帮助我们快速的检查当前表单中的内容是否合法。

注意1:插件使用的时候依赖jQuery.js  并且引入时必须放在jQuery.js之后。顺序:jQuery--validate--汉化包

注意2:为了能够让validate生效,必须在就绪函数中书写

给当前表单添加验证插件

案例代码

总结

jQuery循环遍历操作

  1. $对象.each(function(){});  //有jquery对象时用
  2. $.each(arr,function(index,value){}); //数组时使用

 

$(this)  |  this 的异同

相同点:都是对象

不同点

$(this) 返回的是jQuery对象,之后的操作只能是jquery语法,this返回的是JavaScript,只能使用js语法操作。

转化

jquery 转 js:$对象[*]

js 转 jquery$:(js对象)

 

案例:全选全不选

使用jquery操作属性  

attr[attribute] 1.6之前方法,存在兼容性问题

prop[properties] 主流

$对象.prop(”属性名”);  //获取属性

$对象.prop(”属性名”,”属性值”);  //赋值

 

案例:复选框获取选中的值

substring(beginIndex,endIndex);从begin到end之间的字符串,可以简化为substring(beginIndex)

 

案例:联动效果

$对象.text()

$对象.html()

 

插件:

就绪函数中书写   :   $(”表单”).validate();

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值