05.JavaScript案例

1.案例一:

- 实现过程
1、创建一个页面
** 有两个输入项和一个按钮
** 按钮上面有一个事件:弹出一个新窗口 open

2、创建弹出页面
** 表格
** 每一行有一个按钮和编号和姓名
** 按钮上有一个事件:把当前的编号和姓名,赋值到第一个页面相应的位置

****//实现s1方法
function s1(num1,name1) {
//需要把num1和name1赋值到window页面
//跨页面的操作  opener:得到创建这个窗口的窗口 得到window页面
var pwin = window.opener; //得到window页面
pwin.document.getElementById("numid").value = num1;
pwin.document.getElementById("nameid").value = name1;
//关闭窗口
window.close();
}

- opener:属性,获取创建当前窗口的窗口


代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">
  </style>
 </head>
 <body>
编号:<input type="text" id="numid"/><br/>
姓名:<input type="text" id="nameid"/><br/>
<input type="button" value="选择" onclick="open1()"/>
<script type="text/javascript">
//实现弹出窗口的方法
function open1() {
//open方法
window.open("user.html","","width=250,height=150");
}
</script>
 </body>

</html>



代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">
  </style>
 </head>
 <body>
<table border="1" bordercolor="blue">
<tr>
<td>操作</td>
<td>编号</td>
<td>姓名</td>
</tr>
<tr>
<td><input type="button" value="选择" onclick="s1('100','东方不败');"/></td>
<td>100</td>
<td>东方不败</td>
</tr>
<tr>
<td><input type="button" value="选择" onclick="s1('101','岳不群');"/></td>
<td>101</td>
<td>岳不群</td>
</tr>
<tr>
<td><input type="button" value="选择" onclick="s1('102','林平之');"/></td>
<td>102</td>
<td>林平之</td>
</tr>
</table>

<script type="text/javascript">
//实现s1方法
function s1(num1,name1) {
//需要把num1和name1赋值到window页面
//跨页面的操作  opener:得到创建这个窗口的窗口 得到window页面
var pwin = window.opener; //得到window页面
pwin.document.getElementById("numid").value = num1;
pwin.document.getElementById("nameid").value = name1;
//关闭窗口
window.close();
}
</script>
 </body>
</html>

案例二:动态显示时间
* 得到当前的时间 
var date = new Date();  //得到不是常规的格式
var d1 = date.toLocaleString(); //格式化
* 需要让页面每一秒获取时间
setInterval方法 定时器
* 显示到页面上
每一秒向div里面写一次时间
* 使用innerHTML属性
* 代码
function getD1() {
//当前时间
var date = new Date();
//格式化
var d1 = date.toLocaleString();
//获取div
var div1 = document.getElementById("times");
div1.innerHTML = d1;
}


//使用定时器实现每一秒写一次时间

setInterval("getD1();",1000);


代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">
  </style>
 </head>
 <body>
<div id="times">
</div>
<script type="text/javascript">
function getD1() {
//当前时间
var date = new Date();
//格式化
var d1 = date.toLocaleString();
//获取div
var div1 = document.getElementById("times");
div1.innerHTML = d1;
}

//使用定时器实现每一秒写一次时间
setInterval("getD1();",1000);
</script>
 </body>
</html>

                                           
案例三:全选练习
** 使用复选框上面一个属性判断是否选中
- checked属性
- checked=true:选中
- checked=false:不选中

* 创建一个页面
** 复选框和按钮
- 四个复选框表示爱好
- 还有一个复选框操作 全选和选不选,也有一个事件

** 三个按钮,分别有事件
- 全选
- 全不选
- 反选



代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">

  </style>
 </head>
 <body>
<input type="checkbox" id="boxid" onclick="selAllNo();"/>全选/全不选
<br/>
<input type="checkbox" name="love"/>篮球
<input type="checkbox" name="love"/>排球
<input type="checkbox" name="love"/>羽毛球
<input type="checkbox" name="love"/>乒乓球
<br/>
<input type="button" value="全选" onclick="selAll();"/>
<input type="button" value="全不选" onclick="selNo();"/>
<input type="button" value="反选" onclick="selOther();"/>
<script type="text/javascript">
//实现全选和全不选
function selAllNo() {
/*
1、得到上面那个复选框
- 通过id获取到
2、判断这个复选框是否是选中
- if条件,checked==true
3、如果是选中,下面是全选
4、如果不是选中,下面是全不选
*/
//得到上面复选框
var box1 = document.getElementById("boxid");
//判断这个复选框是否是选择
if(box1.checked == true) { //是选择状态
//调用全选方法
selAll();
} else { //不是选中状态
//调用全不选方法
selNo();
}
}

//实现反选的操作
function selOther() {
/*
1、获取到要操作的复选框
2、返回数组,遍历数组
3、得到每一个复选框

4、判断当前的复选框是选中还是不选中
- if(love1.checked == true) {}
5、如果选中,属性checked设置成false,否则,设置成true
*/
//获取要操作的复选框
var loves11 = document.getElementsByName("love");
//遍历数组
for(var a=0;a<loves11.length;a++) {
//得到每一个复选框
var love11 = loves11[a];
//判断当前这个复选框是什么状态
if(love11.checked == true) { //是选中的状态
//设置checked=false
love11.checked = false;
} else { //是不选中的状态
//把checked=true
love11.checked = true;
}
}
}

//实现全不选的操作
function selNo() {

/*
1、获取到要操作的复选框
2、返回的是数组,遍历数组
3、得到每一个复选框
4、设置复选框的属性 checked=false
*/
//得到要操作的复选框
var loves1 = document.getElementsByName("love");
//遍历数组
for(var j=0;j<loves1.length;j++) {
//得到每一个复选框
var love1 = loves1[j];
//设置属性的值checked = false;
love1.checked = false;
}
}

//实现全选的操作
function selAll() {
/*
1、获取要操作的复选框 
- 使用getElementsByName()
2、返回是数组,
- 属性 checked判断复选框是否选中
*** checked = true; //表示选中
*** checked = false;//表示不选中
- 遍历数组,得到的是每一个checkbox
* 把每一个checkbox属性checked=true
*/
//获取要操作的复选框
var loves = document.getElementsByName("love");
//遍历数组,得到每一个复选框
for(var i=0;i<loves.length;i++) {
var love1 = loves[i]; //得到每一个复选框
//设置属性是true
love1.checked = true;
}
}

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


9、案例四:下拉列表左右选择
* 下拉选择框
<select>
<option>111</option>
<option>111</option>
</select>


* 创建一个页面
** 两个下拉选择框
- 设置属性 multiple属性

** 四个按钮,有事件


代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">

  </style>
 </head>
 <body>

<div id="s1" style="float:left;">
<div>
<select id="select1" multiple="multiple" style="width:100px;height:100px;">
<option>AAAAAAAA</option>
<option>BBBBBBBB</option>
<option>CCCCCCCC</option>
<option>DDDDDDDD</option>
<option>EEEEEEEE</option>
</select>
</div>

<div>
<input type="button" value="选中添加到右边" onclick="selToRight();"/><br/>
<input type="button" value="全部添加到右边" onclick="allToRight();"/>
</div>
</div>

<div id="s2">
<div>
<select id="select2" multiple="multiple" style="width:100px;height:100px;">
<option>QQQQQQQQ</option>
</select>
</div>


<div>
<input type="button" value="选中添加到左边" onclick="selToLeft();"/><br/>
<input type="button" value="全部添加到左边" onclick="allToLeft();"/>
</div>
</div>

<script type="text/javascript">
//实现全部添加到左边
function allToLeft() {
/*
1、获取select2里面的option对象
2、返回是数组,遍历数组
3、得到每一个option对象
4、获取到select1
5、添加到select1里面
- 使用appendChild方法
*/
//获取select2
var select2 = document.getElementById("select2");
//获取select1
var select1 = document.getElementById("select1");
//获取select2里面的option
var options1 = select2.getElementsByTagName("option");
//遍历数组
for(var m=0;m<options1.length;m++){
//得到每一个option
var op11 = options1[m];
//添加到select1里面
select1.appendChild(op11);
m--;
}
}

//选择添加到左边
function selToLeft() {
/*
1、获取select2里面的option对象
2、返回是数组,遍历数组
3、得到每一个option对象
4、判断option是否被选中
- if条件 属性 selected == true:选择
5、获取select1
6、添加到select1里面
- 使用appendChild方法
*/
//获取select1
var s1 = document.getElementById("select1");
//获取到select2
var s2 = document.getElementById("select2");
//得到s1里面的option对象
var opss = s2.getElementsByTagName("option");
//遍历数组
for(var aa=0;aa<opss.length;aa++) {
//得到每一个option
var op = opss[aa];
//判断是否被选中
if(op.selected == true) { //被选中
//添加到select1里面
s1.appendChild(op);
aa--;
}
}
}

//全部添加到右边
function allToRight() {
/*
1、获取第一个select下面的option对象
2、返回数组,遍历数组
3、得到每一个option对象
4、得到select2
5、添加到select2下面
- appendChild方法
*/
//得到select2
var s2 = document.getElementById("select2");
//得到select下面的option对象
var s1 = document.getElementById("select1");
var ops = s1.getElementsByTagName("option");//返回的是数组
//遍历数组
for(var j=0;j<ops.length;j++) {
//得到每一个option对象
var op1 = ops[j];
//添加option到s2下面
s2.appendChild(op1);
j--;
}
}

//实现选中添加到右边
function selToRight() {
/*
1、获取select1里面的option
- getElementsByTagName()返回是数组
- 遍历数组,得到每一个option
2、判断option是否被选中
- 属性 selected,判断是否被选中
** selected= true: 选中
** selected= false:没有选择
3、如果是选中,把选择的添加到右边去
4、得到select2
5、添加选择的部分
- appendChild方法
*/
//获取select1里面的option
//获取select2
var select2 = document.getElementById("select2");
//得到select1
var select1 = document.getElementById("select1");
//得到option
var options1 = select1.getElementsByTagName("option");
//遍历数组
for(var i=0;i<options1.length;i++) {
//alert(i);
//第一次循环 i=0  length:5   
//第二次循环 i=0  length:4   
//           i=0  length: 3
var option1 = options1[i];//得到每一个option对象
//判断是否被选中
if(option1.selected == true) {
//添加到select2里面
select2.appendChild(option1);
i--;
}
}
}
</script>
 </body>
</html>

 

案例五:省市联动
* 创建一个页面,有两个下拉选择框
* 在第一个下拉框里面有一个事件 :改变事件 onchange事件
- 方法add1(this.value);表示当前改变的option里面的value值
* 创建一个二维数组,存储数据
* 每个数组中第一个元素是国家名称,后面的元素是国家里面的城市
    *
/*
1、遍历二维数组
2、得到也是一个数组(国家对应关系)
3、拿到数组中的第一个值和传递过来的值做比较
4、如果相同,获取到第一个值后面的元素
5、得到city的select
6、添加过去(使用)appendChild方法
- 创建option(三步)
*/

/*
由于每次都要向city里面添加option
第二次添加,会追加。

* 每次添加之前,判断一下city里面是否有option,如果有,删除
*/


代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">
  </style>
 </head>
 <body>
<select id="countryid" onchange="add1(this.value);">
<option value="0">--请选择--</option>
<option value="中国">中国</option>
<option value="美国">美国</option>
<option value="德国">德国</option>
<option value="日本">日本</option>
</select>
<select id="cityid">
</select>
 </body>
  <script type="text/javascript">
//创建一个数组存储数据
//二维数组
var arr = new Array(4);
arr[0] = ["中国","南京","抚州","临洮","日喀则","哈密"];
arr[1] = ["美国","华盛顿","底特律","休斯顿","纽约"];
arr[2] = ["德国","慕尼黑","柏林","法兰克福","狼堡"];
arr[3] = ["日本","东京","北海道","大阪","广岛","长崎"];
function add1(val) {
//alert(val);
/*
1、遍历二维数组
2、得到也是一个数组(国家对于关系)
3、拿到数组中的第一个值和传递过来的值做比较
4、如果相同,获取到第一个值后面的元素
5、得到city的select
6、添加过去(使用)appendChild方法
- 创建option(三步)
*/

/*
由于每次都要想city里面添加option
第二次添加,追加
* 每次添加之前,判断一下city里面是否有option,如果有,删除
*/

//获取city的select
var city1 = document.getElementById("cityid");
//得到city里面的option
var options1 = city1.getElementsByTagName("option");
//遍历数组
for(var m=0;m<options1.length;m++) {
//得到每一个option
var op = options1[m];
//删除这个option 通过父节点删除
city1.removeChild(op);
m--;
}

//遍历二维数组
for(var i=0;i<arr.length;i++) {
//得到二维数组里面的每一个数组
var arr1 = arr[i];
//得到遍历之后的数组的第一个值
var firstvalue = arr1[0];
//判断传递过来的值和第一个值是否相同
if(firstvalue == val) { //相同
//得到第一个值后面的元素
//遍历arr1
for(var j=1;j<arr1.length;j++) {
var value1 = arr1[j]; //得到城市的名称
//alert(value1);
//创建option
var option1 = document.createElement("option");
//创建文本
var text1 = document.createTextNode(value1);
//把文本添加到option1里面
option1.appendChild(text1);
//添加值到city1里面
city1.appendChild(option1);
}
}
}
}

</script>

</html>


案例六:动态生成表格

*创建一个页面:两个输入框和一个按钮

代码:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">


  </style>
 </head>
 <body>
行:<input type="text" id="h" />
列:<input type="text" id="l" />
<br/>
<input type="button" value="生成" onclick="add2();"/>
<div id="divv">
</div>
<script type="text/javascript">

function add2() {
/*
1、得到输入的行和列的值
2、生成表格
** 循环行
** 在行里面循环单元格
3、显示到页面上
- 把表格的代码设置到div里面
- 使用innerHTML属性
*/
//获取输入的行和列
var h = document.getElementById("h").value;
var l = document.getElementById("l").value;
//把表格代码放到一个变量里面
var tab = "<table border='1' bordercolor='blue'>";
//循环行
for(var i=1;i<=h;i++) {
tab += "<tr>";
//循环单元格
for(var j=1;j<=l;j++) {
tab += "<td>aaaaaaa</td>"
}
tab += "</tr>";
}

tab += "</table>";
//alert(tab);
//得到div标签
var divv = document.getElementById("divv");
//把table的代码设置到div里面去
divv.innerHTML = tab;
}
</script>
 </body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_42217819/article/details/80447717
今日推荐