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位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...
随机推荐
- 关于volatile 最完整的一篇文章
你真的了解volatile关键字吗? 一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每 ...
- (2.15)Mysql之SQL基础——开发设计最佳规范
(2.15)Mysql之SQL基础——开发设计最佳规范 关键字:mysql三大范式,mysql sql开发规范 分析: show profile.mysqllsla.mysqldrmpslow.exp ...
- git-【一】概述安装
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- PAT 1060 Are They Equal[难][科学记数法]
1060 Are They Equal(25 分) If a machine can save only 3 significant digits, the float numbers 12300 a ...
- oracle 死锁查询及处理
SELECT bs.username "Blocking User", bs.username "DB User", ws.userna ...
- mysql性能测试-tpcc
mysql性能测试-tpcc Tpcc-mysql TPC-C是专门针对联机交易处理系统(OLTP系统)的规范 Tpcc-mysql由percona根据规范实现 TPCC流程 更能模拟线上业务 ...
- SpringData修改和删除操作
SpringData的查询我们已经学完了,我们现在就研究一下SpringData的修改和删除. @Modifying 注解和事务 @Query 与 @Modifying 这两个 annotation一 ...
- 编程当道,学点Python技术好傍身
为了填满AI时代的人才缺口,编程语言教育都从娃娃抓起了!如果你还不懂Python是什么将来怎么给孩子辅导作业呢? Python新手入门教程 近期,浙江省信息技术课程改革方案出台,Python言语现已断 ...
- OAuth 白话简明教程 4.刷新 Access Token
转自:http://www.cftea.com/c/2016/11/6705.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...
- 学号20155308 2016-2017-2 《Java程序设计》第7周学习总结
学号20155308 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 使用Optional代替null 标准API的函数接口 API 功能 Cons ...