DOM之一些小实验demo
body, table{font-family: 微软雅黑; font-size: 10pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}
<script type="text/javascript">
<
function showmsg(){
var h1array = document.getElementsByTagName("h1");
var h10bj = h1array[0];
//法1
//var text = h10bj.childNodes[0].nodeValue;
//法2
//var text = h10bj.firstChild.nodeValue;
//法3
//var text = h10bj.lastChild.nodeValue;
//法4
//var text = h10bj.innerHTML;
//法5
var text = h10bj.innerText;
alert(text);
}
</script>
<h1 id="title">后天休息</h1>
<input type = "button" value="获取文档" onclick="showmsg()">
|
<script type="text/javascript">
//第一步:找到bj节点
function getli(){
//var bjNode=document.getElementById("bj");
var bjNode=document.getElementsByTagName("li")[0];
//获取所有节点信息
for (var i=0;i<bjNode.childNodes.length ;++i )
{
alert(bjNode.childNodes[i].nodeType+":"+bjNode.childNodes[i].nodeName+ ":"+bjNode.childNodes[i].nodeValue);
}
}
</script>
<ul>
<li id="bj" value="beijing">
北京
<h1>海淀</h1>
</li>
<li id="sh" value="shanghai">
上海
</li>
</ul><br/>
<input type="button" value="li取值" onclick="getli()"/>
|
<select name="edu" id="edu">
<option value="本科">本科</option>
<option value="专科">专科</option>
<option value="高中">高中</option>
<option value="小学">小学</option>
<option value="幼儿园">幼儿园</option>
</select>
//select放在下面编译执行的时候才能找到前面的select
<script type="text/javascript">
//取每个option内的文本
//第一步 取select节点
var selectNode=document.getElementsByName("edu")[0];
// alert(selectNode.childNodes.length); //11个,空白部分算做文本也是子节点
//法一
/*
for (var i=0; i<selectNode.childNodes.length ;++i )
{
//alert(selectNode.childNodes[i].firstChild.nodeValue); //firstChild会把里面的空格回车算在里面,会出现null情况
if (selectNode.childNodes[i].nodeType!=3) //不是文本
{
alert(selectNode.childNodes[i].firstChild.nodeValue);
}
}
*/
//法二
var optionArray = document.getElementsByTagName("option");
for (var i=0;i<optionArray.length ; ++i)
{
//alert(optionArray[i].nodeValue); //元素节点的nodeValue是元素的标签名称
alert(optionArray[i].innerHTML);
}
</script>
|
//修改
<script type="text/javascript">
function changeNode(){
//1.找到父节点
var ul0bj1=document.getElementsByTagName("ul")[0];
//找到打灰机
var gameNode=document.getElementById("game");
//copy一份要拿来替换的节点
var gameNodecopy=gameNode.cloneNode(true);
//true表示要克隆节点所有属性和子节点
//找到要替换的北京
var bjNode1=document.getElementById("bj");
//替换
//ul0bj1.replaceChild(gameNode,bjNode1);
//这样写新的节点直接被截切,前面要copy一份
//法1 用克隆节点替换
//ul0bj1.replaceChild(gameNodecopy,bjNode1);
//法2
bjNode1.replaceNode(gameNodecopy);
}
</script>
<ul >
<li id="bj" onclick="changeNode()">北京</li>
<li>湖南</li>
<li>山东</li>
</ul>
<ul>
<li id="game">打<p>灰机</p></li>
<li>抓泥鳅</li>
<li>斗地主</li>
</ul>
|
//增加
/*xml dom*/
<script type="text/javascript">
function addOptions(){
//创建一个节点 <option>小学</option>
var optionNode=document.createElement("option");
var textNode=document.createTextNode("小学");
//设置option的value属性
optionNode.setAttribute("value","小学");
//将文本节点作为option的子节点
optionNode.appendChild(textNode);
//找到select节点
var selectNode=document.getElementsByTagName("select")[0];
//selectNode.appendChild(optionNode);//追加到末尾
//在指定位置插入
var lastNode=document.getElementsByTagName("option")[3];
selectNode.insertBefore(optionNode,lastNode); //父节点.insertBefore(新节点,旧节点);
}
/*html*/
function addOptions2(){
var optionNode=new Option("小学","小学");
var selectNode=document.getElementsByTagName("select")[0];
selectNode.add(optionNode,null); //第二个参数写位置,null默认放到末尾
}
</script>
<input type="button" value="添加选项" onclick="addOptions()"/>
<select>
<option>本科</option>
<option>专科</option>
<option>高中</option>
<option>初中</option>
</select>
|
<script type="text/javascript">
function checkAll(flag){
var checkboxes=document.getElementsByName("hobby");
for (var i=0;i<checkboxes.length ;++i )
{
checkboxes[i].checked=flag;
}
}
function reverseCheck(){
var checkboxes=document.getElementsByName("hobby");
for (var i=0;i<checkboxes.length ;++i )
{
checkboxes[i].checked=!checkboxes[i].checked;
}
}
</script>
<h1>请选择你的爱好:</h1>
全选/全不选<input type="checkbox" name="hobbys" onclick="checkAll(this.checked)" /><br/>
<input type="checkbox" name="hobby" value="football" />足球
<input type="checkbox" name="hobby" value="basketball" />篮球
<input type="checkbox" name="hobby" value="swim" />游泳
<input type="checkbox" name="hobby" value="singing" />唱歌<br/>
<input type="button" value="全选" onclick="checkAll(true)"/>
<input type="button" value="全不选" onclick="checkAll(false)"/>
<input type="button" value="反选" onclick="reverseCheck()"/> </body>
|
<script type="text/javascript">
/*html dom*/
function removeLeft(){
//找到左边选择的option选项
var leftSelectNode=document.getElementById("left");
//选中的index对应的option
if(-1==leftSelectNode.selectedIndex);return; //判断左边,没有元素就直接返回
var selectOptionNode=leftSelectNode.options[ leftSelectNode.selectedIndex ];
//找到右边的select对象
var rightSelectNode=document.getElementById("right");
//给select对象增加一个option
rightSelectNode.add(selectOptionNode,null);
}
function removeLeftAll(){ //注意
var leftSelectNode=document.getElementById("left");
var rightSelectNode=document.getElementById("right");
for (var i=0;i<leftSelectNode.options.length ; )
//每次移动一个过去,length都会减一
{
rightSelectNode.add(leftSelectNode.options[i],null);
}
}
</script>
<table align="center">
<tr>
<td>
<select size="10" id="left">
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
<option>选项4</option>
<option>选项5</option>
<option>选项6</option>
<option>选项7</option>
<option>选项8</option>
</select>
</td>
<td>
<input type="button" value="--->" onclick="removeLeft()"/><br/>
<input type="button" value="===>" onclick="removeLeftAll()"/><br/>
<input type="button" value="<---" onclick="removeRight()"/><br/>
<input type="button" value="<===" onclick="removeRightAll"/><br/>
</td>
<td>
<select size="10" id="right">
<option>选项9</option>
</select>
</td>
</tr>
</table>
|
<script type="text/javascript">
var cityList = new Array();
cityList['北京市'] = ['朝阳区','东城区','西城区', '海淀区','宣武区','丰台区','怀柔','延庆','房山'];
cityList['上海市'] = ['宝山区','长宁区','丰贤区', '虹口区','黄浦区','青浦区','南汇区','徐汇区','卢湾区'];
cityList['广州省'] = ['广州市','惠州市','汕头市','珠海市','佛山市','中山市','东莞市'];
cityList['深圳市'] = ['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'];
cityList['重庆市'] = ['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'];
cityList['天津市'] = ['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'];
cityList['江苏省'] = ['南京市','苏州市','无锡市'];
cityList['浙江省'] = ['杭州市','宁波市','温州市'];
cityList['四川省'] = ['四川省','成都市'];
cityList['海南省'] = ['海口市'];
cityList['福建省'] = ['福州市','厦门市','泉州市','漳州市'];
cityList['山东省'] = ['济南市','青岛市','烟台市'];
cityList['江西省'] = ['江西省','南昌市'];
cityList['广西省'] = ['柳州市','南宁市'];
cityList['安徽省'] = ['安徽省','合肥市'];
cityList['河北省'] = ['邯郸市','石家庄市'];
cityList['河南省'] = ['郑州市','洛阳市'];
cityList['湖北省'] = ['武汉市','宜昌市'];
cityList['湖南省'] = ['湖南省','长沙市'];
cityList['陕西省'] = ['陕西省','西安市'];
cityList['山西省'] = ['山西省','太原市'];
cityList['黑龙江省'] = ['黑龙江省','哈尔滨市'];
cityList['其他'] = ['其他'];
function init(){
//初始化第一个select控件,给它里面加入option
//var array=["bnez","bmw","qq"]
//for (i in array ) //java里面 i 表示array 里的每一个元素;js 里 i 表示数组索引,上面例子表示0,1,2; 代码例子表示省份;
//找到第一个select控件
var provinceNode=document.getElementById("province");
//拿到array里的省份数据,然后根据该数据new optlion,将option放在第一个select控件
for(x in cityList) //各省份
{
var optionNode=new Option(x,x);
provinceNode.add(optionNode,null);
}
}
function changeCity(){
//拿到第一个select控件选择的省份
var provinceNode=document.getElementById("province");
//拿到当前选中的option
var selectedOption=provinceNode.options[provinceNode.selectedIndex];
//拿到当前选中的省份名称可以拿到城市名称
cityList[selectedOption.innerHTML];
var cityNode=document.getElementById("city");
//每次新增之前先将原来的option清空(select长度或者数目改为0)
cityNode.length=1; //为1的时候第二个会有请选择,写0没有,上来就是城市
for(x in cityList[selectedOption.innerHTML]) //注意,这里拿到的是下标,就不是值了
{
var cityOption=new Option(cityList[ selectedOption.innerHTML ][ x ],cityList[ selectedOption.innerHTML ][ x ]);
cityNode.add(cityOption,null);
}
}
//window.onload=init;//这样也可以在打开页面加载函数
</script>
<body onload="init()" >
<select id="province" onchange="changeCity()">
<option>--请选择省份--</option>
</select>
<select id="city">
<option>--请选择城市--</option>
</select>
</body>
|
<table align="center" cellpadding="10" cellspacing="10" >
<tr>
<td>姓名:<input type="text" id="username" /></td>
<td>Email:<input type="text" id="email"/></td>
<td>年龄:<input type="text" id="age"/></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="button" value="添加" onclick="addTR()"/></td>
</tr>
</table>
<br/>
<br/>
<br/>
<hr/>
<table id="tabInfo" align="center" width="500" border="1">
<tr>
<td>姓名</td>
<td>Email</td>
<td>年龄</td>
<td>操作</td>
</tr>
</table>
|
<script type="text/javascript">
//xml dom
function addTR(){
//获取input输入框的数据
var username=document.getElementById("username").value;
var email=document.getElementById("email").value;
var age=document.getElementById("age").value;
//新建一行 tr 四个 td
var trNode=document.createElement("tr");
var tdNode1=document.createElement("td");
var tdNode2=document.createElement("td");
var tdNode3=document.createElement("td");
var tdNode4=document.createElement("td");
//给td插入数据
tdNode1.innerHTML=username;
tdNode2.innerHTML=email;
tdNode3.innerHTML=age;
tdNode4.innerHTML="<input type='button' value='删除' onclick='deleteTR(this)'>";
//新建的tr增加四个子节点td
trNode.appendChild(tdNode1);
trNode.appendChild(tdNode2);
trNode.appendChild(tdNode3);
trNode.appendChild(tdNode4);
//找到表格,下面增加一行
var tableNode=document.getElementById("tabInfo");
tableNode.appendChild(trNode);
}
//HTML
function addTR(){
//获取数据
var username=document.getElementById("username").value;
var email=document.getElementById("email").value;
var age=document.getElementById("age").value;
//找到表格
var tableNode=document.getElementById("tabInfo");
//插入一行
var trNode=tableNode.insertRow(tableNode.rows.length); //rows是一个数组
//插入4个 td
var tdNode0=trNode.insertCell(0); //括号里的是索引
var tdNode1=trNode.insertCell(1);
var tdNode2=trNode.insertCell(2);
var tdNode3=trNode.insertCell(3);
//填充数据
tdNode0.innerHTML=username;
tdNode1.innerHTML=email;
tdNode2.innerHTML=age;
tdNode3.innerHTML="<input type='button' value='删除' onclick='deleteTR(this)'/>"
}
//删除
function deleteTR(inputbutton){
//拿到表格
var trNode=inputbutton.parentNode.parentNode;
//调用函数删除
trNode.parentNode.deleteRow(trNode.rowIndex);
}
//-->
</script>
|
<script type="text/javascript">
<!--
status = 1
var name1=['刘冬','冯凯','林雷','崔兴永','梁莫柱','邓应民','江宇航','陈剑锋','朱政','杨航','李非凡','陈乔 ','翟乃晖','朱希','赵帅','李伟钊','林少龙','邢超超','李威','张文超','王刚','王童玉','王强','贺群夫','张霞'];
var name2=['王虎彪','殷洲','杨进进','邓丽英','嵇珂','任国栋','胡飞龙','林超豪','周继昌','曹亚飞','于兴达','黄帅','刘宗元','冷熠博','陈奎','林妙胜','方建明','李桂冀','肖博','张明辉','吴晓璇','陶飞','沈阳','戴会聪'];
var name3=['粟玲','王锜键','刘政','刘光明'];
var namelist =name1.concat(name2,name3);
function showOneName_Random(){
document.getElementById("name_div").innerHTML = namelist[Math.floor(Math.random()*namelist.length)];
}
function start(){
timer = setInterval(showOneName_Random, 100);
}
function stopname(){
if(status == 1){
clearInterval(timer);
status = 0;
}else{
timer = setInterval(showOneName_Random, 100);
status = 1;
}
}
//-->
</script>
|
<style type="text/css">
#name_div{
margin:4cm;
padding:0cm;
font-size:3cm;
color:red;
width:10cm;
height:6cm;
cursor:pointer;
text-align:center;
}
</style>
<body onload="start()">
<center><Font style="margin-top:5cm" size=7 >点名页面</Font></center>
<hr size=10>
<center><div id=name_div onClick="stopname()"></div> </center>
</body>
|
DOM之一些小实验demo的更多相关文章
- Hadoop之词频统计小实验
声明: 1)本文由我原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实 ...
- js中关于事件捕获与事件冒泡的小实验
1.事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div - ...
- 番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!
大家好,我是博卡君.经过国庆节的七天假期,相信很多朋友都已经研究出自己的小程序 demo 了吧?我最近也利用休息时间关注了一下网上关于小程序开发的讨论,今天就利用这个番外篇谈谈自己对小程序的一些想法吧 ...
- 秒懂JVM的三大参数类型,就靠这十个小实验了
秒懂JVM的三大参数类型,就靠这十个小实验了 你好,我是悟空哥,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」.手写了2个小程序,Java刷题小程序,PMP刷题小程序,已发布到公众 ...
- 基于 Source Generators 做个 AOP 静态编织小实验
0. 前言 上接:用 Roslyn 做个 JIT 的 AOP 作为第二篇,我们基于Source Generators做个AOP静态编织小实验. 内容安排如下: source generators 是什 ...
- 微信小程序DEMO初体验
小程序虽然被炒的很热,但是绝大部分人却从未亲自体验过,在2017年的上班第一天,献上一个小程序DEMO,您可以体验! 注意:由于微信限制,只能使用扫一扫来体验下方小程序DEMO. DEMO首页截图如下 ...
- PBR综合小实验视频-狮子XL
这个是上学时候录的一个策略路由小实验
- ubuntu下格式化内存当硬盘使的小实验
内存虚拟硬盘(ramdisk)是指通过软件技术,将物理内存进行分割,将一部分内存通过虚拟技术转变为硬盘以较大幅度提升计算机数据读取速度和保护硬盘. 在ubuntu下的dev下有ram相关的文件,这些文 ...
- MongoDB 主从复制小实验
MongoDB 主从复制小实验 操作环境描述:WIN8 64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...
随机推荐
- Treasure Exploration---poj2594(传递闭包Floyd+最小路径覆盖)
题目链接:http://poj.org/problem?id=2594 在外星上有n个点需要机器人去探险,有m条单向路径.问至少需要几个机器人才能遍历完所有的点,一个点可以被多个机器人经过(这就是和单 ...
- mysql 数据操作 单表查询 练习
查出所有员工的名字,薪资,格式为 <名字:egon>,<薪资:3000> mysql> select concat('<姓名:',name,'>') as n ...
- linux route命令的使用详解 添加永久静态路由 tracert traceroute
linux route命令的使用详解 添加永久静态路由 tracert traceroute route -n Linuxroute print Windows traceroute ...
- 调试:Spring AOP执行过程
调试项目:https://github.com/1367356/laboratoryWeb 断点位置 点击查询:http://localhost:9002/queryNews?htmlid=15318 ...
- MISC-WHCTF2016-crypto100
题目:李二狗的梦中情人 找不同! 如图,下载得到“nvshen.png” 流程:看到这个被命名为nvshen的文件,感觉文件本身会有东西.用16进制查看器在图片的末尾发现了一串类似URL的ASCII ...
- Android ContentResolver
在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用 程序共享的数据.ContentPro ...
- 89. Gray Code(公式题)
The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...
- linux系统下单网卡绑定多个IP地址方法
说明: 操作系统:CentOS 6.2 IP地址:192.168.21.164 子网掩码:255.255.255.0 网关:192.168.21.2 问题: 现在要增加一个IP地址:192.168.2 ...
- ng-深度学习-课程笔记-10: 机器学习策略2(Week2)
1 误差分析( Carrying out error analysis ) 假设你训练了一个猫的二分类模型,在开发集上的错误率是10%,你想分析这10%的错误率来自哪里,怎么做呢? 先把这些错分的图片 ...
- SQL: 拼接列
1. 因工作需要,需把两列(id,created_by)拼接成一列,结果很有意思,前5个值都是null. 2.解决方法:null加减乘除任何值都等于null,所以使用isnull函数先处理下列的值再拼 ...