JS初识2

JavaScript下篇

使用JS控制表格的隔行换色

需求分析

在网站的后台的表格页面中让表格显示出隔行换色的效果。

技术分析

使用JS控制表格

var tab1 = Document.getElementById(“tab1”);
var rows = tab1.rows.length;
for(){
	if(i % 2 == 0){

}
}

步骤分析

步骤一:确定事件:onload事件。
步骤二:获得表格元素。
步骤三:获得表格的所有行的长度。
步骤四:遍历表格的所有行。
步骤五:使用下标对2取余。
步骤六:设置奇偶行的颜色。

代码实现:

<script type="text/javascript">
		function ShowRowColor()
			{
				//1. 获取表格
				var tab1=document.getElementById("tab1");
				//2. 获取表格的行数
				varrows=tab1.rows.length;
				
				//表格的行数
				//alert(rows);
				//遍历表格行
				for(vari=0;i<rows;i++)
				{
					//判断行的奇偶数
					if(i%2==0)
					{
						//如果能被2整除 ,那么是一种颜色
						//设置每一行的样式背景颜色
						tab1.rows[i].style.backgroundColor="red";
					}
					else
					{
						//如果不能被2整除,那么是另外一种颜色
						//设置每一行的样式背景颜色
						tab1.rows[i].style.backgroundColor="blue";
					}
				}
			}	
			onload=ShowRowColor;
</script>

代码实现,友情提示

表格隔行换色的时候,将最上一行也换掉了。第一行往往不需要进行换色的。

<table align="center" id="tab1">
			<thead>
			<tr>
				<th>序号</th>
				<th>商品名称</th>
				<th>数量</th>
				<th>价格</th>
			</tr>
			</thead>
			<tbody>
			<tr>
				<td>1</td>
				<td>鼠标</td>
				<td>100</td>
				<td>65</td>
			</tr>
			<tr>
				<td>2</td>
				<td>键盘</td>
				<td>66</td>
				<td>120</td>
			</tr>
			<tr>
				<td>3</td>
				<td>显示器</td>
				<td>50</td>
				<td>1000</td>
			</tr>
			</tbody>
		</table>

代码实现

<script type="text/javascript">
		//匿名函数: 只在加载时,调用一次
			window.onload=function()
			{
				//1 获取表格
				var tab1=document.getElementById("tab1");
				//2. 获取除了第一行以外的表格内容行tbody中的内容行数
				var rows=tab1.tBodies[0].rows.length;
				for(vari=0;i<rows;i++)
				{
					if(i%2==0)
					{
						tab1.tBodies[0].rows[i].style.backgroundColor="red";
					}
					else
					{
						tab1.tBodies[0].rows[i].style.backgroundColor="blue";	
					}
				}
				
			}
		</script>

JS控制复选框的全选和全不选的效果

需求分析

在后台管理页面中,往往会有批量删除数据的效果,就需要有复选框全选和全不选的效果。

技术分析

使用JS控制复选框

varchkAll = Document.getElementById(“chkAll”);
if(chkAll.checked== true)
{
for(){
chks[i].checked= true;
}
}

步骤分析:

步骤一:确定事件:单击事件。
步骤二:获得下面的所有的复选框。
步骤三:如果上面的复选框被选中,将下面的所有的复选框选中状态变为checked=true。
步骤四:如果上面的复选框没被选中,将下面的所有的复选框选中状态变为checked=false。

代码实现

function ChangeAll()
			{
				varchkAll=document.getElementsByName("chkAll");
				//获取全选复选框是否选中
				varisChecked=chkAll[0].checked;
				//获取是否全选
				//alert(isChecked);
				
				//得到所有的 name= chk的复选框控件
				varchks=document.getElementsByName("chk");
				for(vari=0;i<chks.length;i++)
				{
					//下面的每一个复选框,都是和全选状态一致
					chks[i].checked=isChecked;
				}
			}

DOM的操作:

DOM:Document Object Model 文档对象模型。

将HTML文档装载到内存,将HTML文档形成一个DOM的树形结构。
在这里插入图片描述

Document:文档对象代表的是加载到内存中的整个的文档.

方法
document.getElementById(“”);
document.getElementsByName(“”);
document.getElementsByTagName(“”);
document.createElement(“”);

Element:元素对象.代表文档中的每个元素(标签)

	<ul>
		<li>北京</li>
		<li>上海</li>
		<li>深圳</li>
	</ul>

属性

firstChild:获得其第一个子节点。
lastChild:获得其最后一个子节点。

方法
appendChild();将节点添加到当前节点的最后。
insertBefore();将节点添加到某个元素之前。
Attribute:属性对象.代表元素上的属性。

Document,Element,Attribute统称为Node(节点)。

JS控制二级联动:

需求分析

在注册页面上有一个下拉列表,下拉列表显示省份信息,有另一个下列列表.选择某个省份,将这个省份下的城市列出。

技术分析

使用JS创建新选项

varnewOpt=new Option(“”, “”);
varcitySel = document.getElementById(“city”);
citySel.options.add(newOpt);

数组对象的使用

创建数组:
在这里插入图片描述
vararr = new Array(1,2,3);
数组的属性:
在这里插入图片描述

数组的方法:
在这里插入图片描述

步骤分析:

步骤一:确定事件:onchange。
步骤二:获得改变的省份值 。
步骤三:比较省份的值与数组中定义的值是否相等,如果相等获得这个省份对应的所有的市的数组。
步骤四:创建option元素,将数组中的值添加到option元素中。
步骤五:将option添加到第二个下拉列表中。

代码实现

在这里插入图片描述

		<script type="text/javascript">
			var arr1=new Array("济南市","青岛市","淄博市","枣庄市","东营市","烟台市","潍坊市","济宁市");
			var arr2=new Array("南京市","无锡市","徐州市","常州市","苏州市","南通市","连云港市","淮安市");
			var arr3=new Array("长沙市","株洲市","湘潭市","衡阳市","邵阳市","岳阳市","常德市","张家界市");
			
			window.onload=function()
			{
				//省份的控件绑定触发城市的加载事件
				document.getElementById("province").onchange=function(){
					
					varproValue=document.getElementById("province").value;
					
					var city=document.getElementById("city");
					
					city.length=1;//把除了第一个选择项,其他都删除
					//根据省份加载绑定城市的下拉框的数据
					if(proValue=="1")
					{
						for(vari=0;i<arr1.length;i++)
						{
							//new Option(?,?)第一个参文本内容,第二个参value值
							varNewOption=new Option(arr1[i],arr1[i]);
							city.options.add(NewOption);
						}
					}else if(proValue=="2")
					{
						for(vari=0;i<arr2.length;i++)
						{
							varNewOption=new Option(arr2[i],arr2[i]);
							city.options.add(NewOption);
						}
					}
					else if(proValue=="3")
					{
						for(vari=0;i<arr3.length;i++)
						{
							varNewOption=new Option(arr3[i],arr3[i]);
							city.options.add(NewOption);
						}
					}
					
				}
			}
		</script>

在这里插入图片描述
在这里插入图片描述

扩展内容:

在这里插入图片描述
查看文档了解方法:

全局函数:
在这里插入图片描述
parseInt(); 将字符串转出整型
parseFloat(); 将字符串转成小数

JS控制下拉列表左右选择

4.1需求分析

有两个列表,需要将左侧列表中的数据添加到右侧的列表中:

在这里插入图片描述

技术分析

添加下拉框选项

options.add()

移除下拉框选项
options.remove()

步骤分析:

单击事件
编写函数:获得左侧的下拉列表。
遍历左侧列表中的所有的option元素.判断是否被选中。
如果被选中添加到右侧。
删除左侧被移动的选中项。

单击事件
编写函数:获得左侧的下拉列表。
遍历左侧的列表中的所有的option。
全部添加到右侧。
删除左侧的所有项。

代码实现

<script type="text/javascript">
			function MoveSelect()
			{
				varselLeft=document.getElementById("selLeft");
				varselRight=document.getElementById("selRight");
				
				//alert(selLeft.selectedIndex);
				if(selLeft.selectedIndex>-1)
				{
					//添加
					selRight.options.add(new Option(selLeft.value,selLeft.value));
					//原有的选项,删除
					selLeft.options.remove(selLeft.selectedIndex);
				}
				
			}
			
			function MoveSelectAll()
			{
				varselLeft=document.getElementById("selLeft");
				varselRight=document.getElementById("selRight");
				
				//alert(selLeft.selectedIndex);
				if(selLeft.options.length>0)
				{
					for(vari=0;i<selLeft.options.length;i++)
					{
						//循环添加
						selRight.options.add(new Option(selLeft.options[i].value,selLeft.options[i].value));
					}
					
					//删除所有的左侧项
					selLeft.length=0;
				}
				
			}
			
		</script>
	</head>
	<body>
		<table>
			<tr>
				<td>分类商品</td>
				<td valign="top">
					<!--左侧-->
					<span style="float: left;">
						<span style="color:red">已有商品</span><br />
						<select id="selLeft" multiple="true">
							<option value="IPhone6s">IPhone6s</option>
							<option value="小米4">小米4</option>
							<option value="锤子T2">锤子T2</option>
						</select><br />
						<a href="javascript:MoveSelect()">&gt;&gt;</a><br />
						<a href="javascript:MoveSelectAll()">&gt;&gt;&gt;</a>
					</span>
					<!--右侧-->
					<span style="float: right;">
						<span style="color:green">未有商品</span><br />
						<select id="selRight"  multiple="true">
							<option value="三星Note3">三星Note3</option>
							<option value="华为6s">华为6s</option>
						</select><br />
						<a href="">&lt;&lt;</a><br />
						<a href="">&lt;&lt;&lt;</a>
					</span>
				</td>
			</tr>
		</table>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值