Java web JavaScript DOM 编程
JavaScript DOM 编程
(1).DOM概述及分类
(2).DOM结构模型:XML DOM 和 HTML DOM 关系?
(3).结点,结点树,结点属性与方法?
1.DOM是什么?
document object model 文档对象模型
是W3C织制订的一套用于访问XML和HTML文档的标准.允许脚本动态地访问和更新文档的内容、结构和样式.
分类
DOM Core
XML DOM
HTML DOM2.DOM结构模型:XML DOM 和 HTML DOM 关系?
3.
nodeName String 节点的名字;根据节点的类型而定义
nodeValue String 节点的值;根据节点的类型而定义
nodeType Number 节点的类型常量值之一
ownerDocument Document 指向这个节点所属的文档
firstChild Node 指向在childNodes列表中的第一个节点
lastChild Node 指向在childNodes列表中的最后一个节点
childNodes NodeList 所有子节点的列表
parentNode Node 返回一个给定节点的父节点。
previousSibling Node 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null
nextSibling Node 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null
hasChildNodes() Boolean 当childNodes包含一个或多个节点时,返回真
attributes NamedNodeMap 包含了代表一个元素的特性的Attr对象;仅用于Element节点
appendChild(node) Node 将node添加到childNodes的末尾
removeChild(node) Node 从childNodes中删除node
replaceChild (newnode, oldnode) Node 将childNodes中的oldnode替换成newnode
insertBefore (newnode, refnode) Node 在childNodes中的refnode之前插入newnode
常用方法
getElementById()返回对拥有指定 id 的第一个对象的引用
getElementsByName()返回带有指定名称的对象集合
getElementsByTagName()返回带有指定标签名的对象集合DOM节点常见操作
DOM 获取节点
DOM 改变节点
DOM 删除节点
DOM 替换节点
DOM 创建节点
DOM 添加节点模式对话框代码示例:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> js模式对话框 </title>
- <script>
- function openModal(){
- //cval的值来自于window.returnValue返回的值,在打开的模式对话框中
- var cval = window.showModalDialog("01modal.html");
- //赋值
- document.getElementById("city").value = cval;
- }
- </script>
- </head>
- <body>
- <input type="text" id="city" /><input type="button" value="请选择城市" onclick="openModal()"/>
- </body>
- </html>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 模式对话框</title>
- <script>
- function getVal(obj){
- window.returnValue = obj.value;
- window.close();
- }
- </script>
- </head>
- <body>
- <input type="radio" value="北京" onclick="getVal(this)"/>北京<br/>
- <input type="radio" value="深圳" onclick="getVal(this)"/>深圳<br/>
- <input type="radio" value="东莞" onclick="getVal(this)"/>东莞<br/>
- <input type="radio" value="武汉" onclick="getVal(this)"/>武汉<br/>
- </body>
- </html>
键盘事件
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 提交事件 </title>
- <!--
- 提交事件:onsubmit
- 1.是写在form表单中,而不是写在提交按钮中
- 2.调用格式:onsubmit="return 函数名()"
- 3.被调用的函数中一定要返回布尔值
- -->
- <script>
- function chk(){
- var username = document.getElementById("username").value;
- var pwd = document.getElementById("pwd").value;
- //正则
- var reg = /^[0-9a-zA-Z]{6,10}$/;
- if(!reg.test(username)){
- return false;
- }
- if(pwd==""){
- return false;
- }
- return true;
- }
- </script>
- </head>
- <body>
- <form action="01modal.html" method="post" onsubmit="return chk()">
- 用户名:<input type="text" id="username" name="username" /><br/>
- 密码:<input type="password" id="pwd" name="pwd"/></br/>
- <input type="submit" value="登录"/>
- <input type="reset" value="重置"/>
- </form>
- </body>
- </html>
Onchange事件:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>onchange事件 </title>
- <script>
- function changCity(){
- //1.得到省份下拉列表的选中值
- var provinceVal = document.getElementById("province").value;
- //2.找到城市下拉列表
- var cityObj = document.getElementById("city");
- //3.定义数组
- var citys = new Array();
- citys[0] = new Array("");
- citys[1] = new Array("济南","青岛");
- citys[2] = new Array("长沙","株洲");
- //4.添加城市下拉列表
- //4.1清除下拉列表
- cityObj.options.length=0;
- var city = citys[provinceVal];
- for(var i=0;i<city.length;i++){
- cityObj.add(new Option(city[i],city[i]));// new Option(文本,值)
- }
- }
- </script>
- </head>
- <body>
- <select id="province" onchange="changCity()">
- <option value="0">请选择省份</option>
- <option value="1">山东</option>
- <option value="2">湖南</option>
- </select>
- <select id="city"></select>
- </body>
- </html>
获取DOM结点信息:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> DOM </title>
- </head>
- <body>
- <h1 id="h1">明天休息</h1>
- <script>
- alert(document.getElementById("h1").innerHTML);
- //alert(document.getElementById("h1").innerText);
- //alert(document.getElementById("h1").firstChild.nodeValue);
- //alert(document.getElementById("h1").lastChild.nodeValue);
- //alert(document.getElementById("h1").childNodes[0].nodeValue);
- //alert(document.getElementById("h1").textContent);//IE不好使,firefox好使
- </script>
- </body>
- </html>
DOM 取值:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 取li的文本值 </title>
- <script>
- function getLi(){
- //1.找到bj的结点
- var bjNode = document.getElementById("bj");
- //2.找所有子结点
- var bjChildNodessww = bjNode.childNodes;
- //3遍历
- for(var i=0;i<bjChildNodessww.length;i++){
- var t = bjChildNodessww[i];
- alert(t.nodeName+","+t.nodeValue+","+t.nodeType);
- }
- }
- </script>
- </head>
- <body>
- <ul>
- <li id="bj" value="beijing">
- 北京
- <h1>海淀</h1>
- 奥运
- </li>
- <li id="sh" value="shanghai">
- 上海
- </li>
- <br/>
- <input type="button" value="li取值" onclick="getLi()"/>
- </ul>
- </body>
- </html>
遍历option文本:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 得到所有的option的文本 </title>
- </head>
- <body>
- <select name="edu" id="edu">
- <option value="本科">本科^^</option>
- <option value="专科">专科^^</option>
- <option value="高中">高中^^</option>
- <option value="小学">小学^^</option>
- <option value="幼儿园">幼儿园^^</option>
- </select>
- <script>
- /* //1.找到edu
- var eduNode = document.getElementById("edu");
- //2.得到孩子们
- var eduChildNodesw = eduNode.childNodes;
- //3.遍历孩子们
- for(var i=0;i<eduChildNodesw.length;i++){
- alert(eduChildNodesw[i].innerHTML);
- }
- */
- var eduNode = document.getElementsByTagName("option");
- //3.遍历孩子们
- for(var i=0;i<eduNode.length;i++){
- alert(eduNode[i].innerHTML);
- }
- </script>
- </body>
- </html>
结点替换:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>结点替换</title>
- <script>
- function changeNode(){
- //1.找到bj结点
- var bjNodess = document.getElementById("bj");
- //2.找到game结点,还要复制结点cloneNode(true);//true代表子结点也克隆
- var gameNodess = document.getElementById("game").cloneNode(true);
- //3.替换
- bjNodess.replaceNode(gameNodess);
- //bjNodess.parentNode.replaceChild(gameNodess,bjNodess);
- }
- </script>
- </head>
- <body>
- <ul >
- <li id="bj" onclick="changeNode()">北京</li>
- <li>湖南</li>
- <li>山东</li>
- </ul>
- <ul>
- <li id="game">打<p>灰机</p></li>
- <li>抓泥鳅</li>
- <li>斗地主</li>
- </ul>
- </body>
- </html>
添加结点:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> New Document </title>
- <script>
- function addOptions(){
- //1.找到select标签
- var ss = document.getElementsByTagName("select")[0];
- //2.添加一个option结点
- var optionss = document.createElement("option");
- //3.添加一个文本结点,小学
- //var xs = document.createTextNode("小学");
- optionss.innerHTML="小学";
- //4.搞关系
- //optionss.appendChild(xs);
- ss.appendChild(optionss);
- }
- </script>
- </head>
- <body>
- <input type="button" value="添加选项" onclick="addOptions()"/>
- <select>
- <option>本科</option>
- <option>专科</option>
- <option>高中</option>
- <option>初中</option>
- </select>
- </body>
- </html>
表格操作
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 表格操作 </title>
- <script>
- //--------------XML DOM--------------------------------------
- /*function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var trObj = document.createElement("tr");
- var tdUsername = document.createElement("td");
- var tdEmail = document.createElement("td");
- var tdAge = document.createElement("td");
- var tdOp = document.createElement("td");
- //3.添加td的内容
- tdUsername.innerHTML=username;
- tdEmail.innerHTML=email;
- tdAge.innerHTML=age;
- tdOp.innerHTML="<input type='button' value='删除' onclick='deleteRowss(this)'/>";
- //4.搞关系
- trObj.appendChild(tdUsername);
- trObj.appendChild(tdEmail);
- trObj.appendChild(tdAge);
- trObj.appendChild(tdOp);
- //5.把tr添加到表格中
- document.getElementById("tabInfo").appendChild(trObj);
- }
- function deleteRowss(obj){
- var trObjss = obj.parentNode.parentNode;//tr
- trObjss.parentNode.removeChild(trObjss);
- }*/
- //---------------------HTML DOM---------------------------------
- /*function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var tabinfoss = document.getElementById("tabInfo");
- //在表格中添加一行
- var trss = tabinfoss.insertRow();
- var tdUsernamess = trss.insertCell();
- var tdEmailss = trss.insertCell();
- var tdAgess = trss.insertCell();
- var tdOpss = trss.insertCell();
- //3.添加td的内容
- tdUsernamess.innerHTML=username;
- tdEmailss.innerHTML=email;
- tdAgess.innerHTML=age;
- tdOpss.innerHTML="<input type='button' value='删除' onclick='deleteRowss(this)'/>";
- }
- function deleteRowss(obj){
- //1.得到表格
- var tabinfoss = document.getElementById("tabInfo");
- //2.找到当前行的索引 rowIndex
- var rowindexss = obj.parentNode.parentNode.rowIndex;
- //3.删除
- tabinfoss.deleteRow(rowindexss);//当前行的索引
- }*/
- //--------------------------------------------------------------
- function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var tabinfoss = document.getElementById("tabInfo");
- tabinfoss.innerHTML+="<tr><td>"+username+"</td><td>"+email+"</td><td>"+age+"</td><td><input type='button' value='删除' onclick='deleteRowss(this)'/></td></tr>";
- }
- function deleteRowss(obj){
- //1.得到表格
- var tabinfoss = document.getElementById("tabInfo");
- //2.找到当前行的索引 rowIndex
- var rowindexss = obj.parentNode.parentNode.rowIndex;
- //3.删除
- tabinfoss.deleteRow(rowindexss);//当前行的索引
- }
- </script>
- </head>
- <body>
- <table align="center" cellpadding="10" cellspacing="3" >
- <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>
- </body>
- </html>
表格操作:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 表格操作 </title>
- <script>
- //--------------XML DOM--------------------------------------
- /*function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var trObj = document.createElement("tr");
- var tdUsername = document.createElement("td");
- var tdEmail = document.createElement("td");
- var tdAge = document.createElement("td");
- var tdOp = document.createElement("td");
- //3.添加td的内容
- tdUsername.innerHTML=username;
- tdEmail.innerHTML=email;
- tdAge.innerHTML=age;
- tdOp.innerHTML="<input type='button' value='删除' onclick='deleteRowss(this)'/>";
- //4.搞关系
- trObj.appendChild(tdUsername);
- trObj.appendChild(tdEmail);
- trObj.appendChild(tdAge);
- trObj.appendChild(tdOp);
- //5.把tr添加到表格中
- document.getElementById("tabInfo").appendChild(trObj);
- }
- function deleteRowss(obj){
- var trObjss = obj.parentNode.parentNode;//tr
- trObjss.parentNode.removeChild(trObjss);
- }*/
- //---------------------HTML DOM---------------------------------
- /*function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var tabinfoss = document.getElementById("tabInfo");
- //在表格中添加一行
- var trss = tabinfoss.insertRow();
- var tdUsernamess = trss.insertCell();
- var tdEmailss = trss.insertCell();
- var tdAgess = trss.insertCell();
- var tdOpss = trss.insertCell();
- //3.添加td的内容
- tdUsernamess.innerHTML=username;
- tdEmailss.innerHTML=email;
- tdAgess.innerHTML=age;
- tdOpss.innerHTML="<input type='button' value='删除' onclick='deleteRowss(this)'/>";
- }
- function deleteRowss(obj){
- //1.得到表格
- var tabinfoss = document.getElementById("tabInfo");
- //2.找到当前行的索引 rowIndex
- var rowindexss = obj.parentNode.parentNode.rowIndex;
- //3.删除
- tabinfoss.deleteRow(rowindexss);//当前行的索引
- }*/
- //--------------------------------------------------------------
- function addTR(){
- //1.取三个框的值
- var username = document.getElementById("username").value;
- var email = document.getElementById("email").value;
- var age = document.getElementById("age").value;
- //2.添加tr,td
- var tabinfoss = document.getElementById("tabInfo");
- tabinfoss.innerHTML+="<tr><td>"+username+"</td><td>"+email+"</td><td>"+age+"</td><td><input type='button' value='删除' onclick='deleteRowss(this)'/></td></tr>";
- }
- function deleteRowss(obj){
- //1.得到表格
- var tabinfoss = document.getElementById("tabInfo");
- //2.找到当前行的索引 rowIndex
- var rowindexss = obj.parentNode.parentNode.rowIndex;
- //3.删除
- tabinfoss.deleteRow(rowindexss);//当前行的索引
- }
- </script>
- </head>
- <body>
- <table align="center" cellpadding="10" cellspacing="3" >
- <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>
- </body>
- </html>
全选反选
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 全选/反选/全不选 </title>
- <script>
- function checkAll(booleanVal){
- //1.根据名称得到一组值
- var hobbys = document.getElementsByName("hobby");
- for(var i=0;i<hobbys.length;i++){
- //hobbys[i].setAttribute("checked",booleanVal);
- hobbys[i].checked=booleanVal;
- }
- }
- function reversess(){
- //1.根据名称得到一组值
- var hobbys = document.getElementsByName("hobby");
- for(var i=0;i<hobbys.length;i++){
- hobbys[i].checked=!hobbys[i].checked;
- }
- }
- </script>
- </head>
- <body>
- <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="reversess()"/> </body>
- </body>
- </html>
左移 右移
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>下拉列表,选项左移右移 </title>
- <script>
- function removeLeft(){
- //1.找左边的下拉列表
- var leftSelectObj = document.getElementById("left");
- //2.找左边下拉列表中选中的项
- var indexss = leftSelectObj.selectedIndex;//找到选中项的索引
- var selectedOptss = leftSelectObj.options[indexss];//找到了选中的option,<option>选项1</option>
- //3.找右边的下拉列表
- var rightSelectObj = document.getElementById("right");
- //4.移动
- //rightSelectObj.add(selectedOptss);//IE不支持,firefox支持
- rightSelectObj.appendChild(selectedOptss);
- }
- function removeLeftAll(){
- //1.找左边的下拉列表
- var leftSelectObj = document.getElementById("left");
- var selectedOptAll = leftSelectObj.options;//左边所有选项
- //2.找右边的下拉列表
- var rightSelectObj = document.getElementById("right");
- //3.一边遍历左边选项,一边添加右边的选项
- var length = selectedOptAll.length;
- /*for(var i=0;i<length;i++){
- rightSelectObj.appendChild(selectedOptAll[i]);
- }*/
- /*for(var i=selectedOptAll.length-1;i>=0;i--){
- rightSelectObj.appendChild(selectedOptAll[i]);
- }*/
- for(var i=0;i<length;i++){
- rightSelectObj.appendChild(selectedOptAll[0]);
- }
- }
- </script>
- </head>
- <body>
- <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=""/><br/>
- <input type="button" value="<===" onclick=""/><br/>
- </td>
- <td>
- <select size="10" id="right">
- <option>选项9</option>
- </select>
- </td>
- </tr>
- </table>
- </body>
- </html>
级联加载:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> 级联加载 </title>
- <script>
- 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 changeCity(){
- //1.找到城市下拉列表
- var cityObj = document.getElementById("city");
- //2.找到省份选中的值
- var provinceVal = document.getElementById("province").value;
- //3.清空原有的城市列表
- cityObj.length=1;
- //3.遍历省份选中值的城市列表,一边遍历一边在城市列表中添加
- for(var i in cityList[provinceVal]){
- cityObj.add(new Option(cityList[provinceVal][i],cityList[provinceVal][i]));
- }
- }
- function loadProvince(){
- //1.找到省份
- var provinceObj = document.getElementById("province");
- provinceObj.length=1;
- //加强for循环
- for(var index in cityList){
- provinceObj.add(new Option(index,index));
- }
- }
- window.onload = loadProvince;
- </script>
- </head>
- <body>
- <select id="province" onchange="changeCity()">
- <option>--请选择省份--</option>
- </select>
- <select id="city">
- <option>--请选择城市--</option>
- </select>
- </body>
- </html>
Java web JavaScript DOM 编程的更多相关文章
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- JavaScript DOM 编程艺术(第2版)读书笔记(1)
JavaScript 简史 JavaScript 是Netscape公司与Sun公司合作开发的.在 JavaScript 1.0发布时,Netscape Navigator主宰着浏览器市场.微软在推出 ...
- JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...
- JavaScript DOM编程艺术读后感(1)—— 平稳退化
最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...
- JavaScript DOM 编程艺术
最近把JavaScript DOM 编程艺术这本书看完了,觉得这本书很好 深入浅出地展示了渐进增强.平稳退化.结构和样式分离等编程思想,我对书中重要的知识进行了梳理总结. 一.网页 二.JavaScr ...
- JavaScript DOM编程艺术(第2版)的简单总结
介绍 JavaScript DOM编程艺术(第2版)主要讲述了 JavaScript.DOM 和 HTML5 的基础知识,着重讲述了 DOM 编程,并通过几个实例演示了具有专业水准的网页开发. 下面介 ...
- Java Web大作业——编程导航系统
title: Java Web大作业--编程导航系统 categories: - - 计算机科学 - Java abbrlink: 40bc48a1 date: 2021-12-29 00:37:35 ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
随机推荐
- 汇编指令-CMP、TEQ(5)
cmp:(compare)指令进行比较两个操作数的大小 格式: cmp oprd1,oprd2 比较oprd1和oprd2操作数,然后通过助记符来实现想要的判断. teq: (test equal ...
- Python Keras module 'keras.backend' has no attribute 'image_data_format'
问题: 当使用Keras运行示例程序mnist_cnn时,出现如下错误: 'keras.backend' has no attribute 'image_data_format' 程序路径https: ...
- VHDL学习:利用Quartus自带库3步快速完成状态机
Quartus自带库里面有各种编程语言的模板,供开发者参考. 初学者利用VHDL实现状态机比较生疏的情况下,可以调出该模板,适当修改即可. 本文将描述如何利用Quartus自带库调出状态机模板,并适当 ...
- 嵌套ajax 页面卡死的问题
问题:要一个AJAX中的回调函数中又进行了一个AJAX调用,并且这个AJAX是在一个循环调用的,不论设置async属性是true和false页面卡死. 解决方法:async属性都设为true,不用循环 ...
- angularjs自定义指令实现分页插件
由于最近的一个项目使用的是angularjs1.0的版本,涉及到分页查询数据的功能,后来自己就用自定义指令实现了该功能.现在单独做了个简易的小demo,主要是为了分享自己写的分页功能.注:本实例调用的 ...
- Python 进程与线程小随笔
Process 涉及模块:multiprocessing Process p = Process() p.start() p.join() from multiprocessing import Pr ...
- 复杂关联SQL的优化
昨天处理了一则复杂关联SQL的优化,这类SQL的优化往往考虑以下四点: 第一.查询所返回的结果集,通常查询返回的结果集很少,是有信心进行优化的: 第二.驱动表的选择至关重要,通过查看执行计划,可以看到 ...
- sudoku--SE第二次作业
git传送门 编译环境: windows10.vs2017 所用语言: c++ 首先作为一个晚上闭眼的玩家,我先来讲一下我的心路历程: 最开始接到作业的时候心里是拒绝的,刚出了一趟小远门就这样,就很难 ...
- 201521123007《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1. List中指定元素的删除(题目4-1) private static ...
- 201521123097《Java程序设计》第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...