首页技术为王JavascriptJS入门到精通 第11章 文档对象模型(DOM)

JS入门到精通 第11章 文档对象模型(DOM)

分类Javascript时间2026-06-21 16:35:03发布信义之树浏览101
导读:一、练习 1. 练习1 (1)源代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>访问指定节点</title> &...

一、练习

1. 练习1

  (1)源代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>访问指定节点</title>
</head>
<body id="b1">
<h3>三号标题</h3>
<b>加粗内容</b>
    BODYBODYBODYBODYBODY
<script type="text/javascript">
    var by=document.getElementById("b1");
    var str;
    str="节点名称:"+by.nodeName+"\n";
    str+="节点类型:"+by.nodeType+"\n";
    str+="节点值:"+by.nodeValue+"\n";
    alert(str);
</script>
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_1/

 (3)Tips

   .nodeName,.nodeType 。


2. 练习2

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>遍历文档树</title>
</head>
<body>
<h3 id="h1">三号标题</h3>
<b>加粗内容</b>
<form name="frm" action="#" method="get">
节点名称:<input type="text" id="na"><br>
节点类型:<input type="text" id="ty"><br>
节点的值:<input type="text" id="va"><br>
<input type="button" value="父节点" onclick="txt=nodeS(txt,'parent');">
<input type="button" value="第一个子节点" onclick="txt=nodeS(txt,'firstChild');">
<input type="button" value="最后一个子节点" onclick="txt=nodeS(txt,'lastChild');"><br>
<input name="button" type="button" onclick="txt=nodeS(txt,'previousSibling');" value="前一个兄弟节点">
<input type="button" value="后一个兄弟节点" onclick="txt=nodeS(txt,'nextSibling');">
<input type="button" value="返回根节点" onclick="txt=document.documentElement;txtUpdate(txt);">
</form>
    
    
<script type="text/javascript">

    function nodeS(txt,nodeName){
        switch(nodeName){
            case "previousSibling":
                if(txt.previousSibling){
                    txt=txt.previousSibling;
                }else
                    alert("无兄弟节点");
                break;
            case "nextSibling":
                if(txt.nextSibling){
                    txt=txt.nextSibling;
                }else
                    alert("无兄弟节点");
                break;
            case "parent":
                if(txt.parentNode){
                    txt=txt.parentNode;
                }else
                    alert("无父节点");
                break;
            case "firstChild":
                if(txt.hasChildNodes()){
                    txt=txt.firstChild;
                }else
                    alert("无子节点");
                break;
            case "lastChild":
                if(txt.hasChildNodes()){
                    txt=txt.lastChild;
                }else
                    alert("无子节点")
                break;
                
        }
        txtUpdate(txt);
        return txt;
    }
    
    function txtUpdate(txt){
        window.document.frm.na.value=txt.nodeName;
        window.document.frm.ty.value=txt.nodeType;
        window.document.frm.va.value=txt.nodeValue;
    }
    
    var txt=document.documentElement;
    txtUpdate(txt);
</script>
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_2/

 (3)Tips

   .previousSibling,.nextSibling,.parent,.firstChild,lastChild,txt经返回之后就一直用那个值 。


3. 练习3

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>补全古诗最后一句</title>
<style type="text/css">
#poemDiv{
    width:300px;
    height:180px;
    background:url(poem.png);
    font-weight:bolder;
}
.poemtitle{
height:50px;
line-height:50px;
margin-left:120px;
font-size:24px;
color:#0000FF;}
.poem{
margin:0 auto;
margin-left:100px;
height:30px;
line-height:30px;
color:#0000FF;
font-size:18px;
}
</style>
</head>
<body>
  
<div id="poemDiv">
  <div>春晓</div>
  <div>春眠不觉晓</div>
  <div>处处闻啼鸟</div>
  <div>夜来风雨声</div>
</div>
<p></p>
<form name="myform">
  请输入最后一句:<input type="text" name="last">
  <input type="button" value="添加" onClick="completePoem()">
</form>
    
    
<script type="text/javascript">
function completePoem(){
    var div = document.createElement('div');//创建div元素
    div.className = 'poem';//为div元素添加CSS类
    var last = myform.last.value;//获取用户输入的古诗最后一句
    txt=document.createTextNode(last);//创建文本节点
    div.appendChild(txt);//将文本节点添加到创建的div元素中
    document.getElementById('poemDiv').appendChild(div);//将创建的div元素添加到id为poemDiv的div元素中
}
</script>    
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_3/

 (3)Tips

   .createTextNode,appendChild,.classname 。


4. 练习4

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>创建多个节点</title>

</head>
<body onload="dc()">
    
    <script type="text/javascript">
    function dc(){
        var aText=["第一个节点","第二个节点","第三个节点","第四个节点","第五个节点","第六个节点"];
        for(var i=0;i<aText.length;i++){
            var ce=document.createElement("p");
            var cText=document.createTextNode(aText[i]);
            ce.appendChild(cText);            
            document.body.appendChild(ce);
        }
    }
    
    window.onload=dc;
</script>
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_4/

 (3)Tips

   <body onload="dc()">这么写无效 。


5. 练习5

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>创建多个节点2</title>
</head>
<body onload="dc()">
<script type="text/javascript">
    function dc(){
        var aText=["第一个节点","第二个节点","第三个节点","第四个节点","第五个节点","第六个节点"];
        var cdf=document.createDocumentFragment();
        for(var i=0;i<aText.length;i++){
            var ce=document.createElement("b");
            var cb=document.createElement("br");
            var cText=document.createTextNode(aText[i]);
            ce.appendChild(cText);
            cdf.appendChild(ce);
            cdf.appendChild(cb);
        }
        document.body.appendChild(cdf);
    }
    
    window.onload=dc;
</script>
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_5/

 (3)Tips

   document.createDocumentFragment 。


6. 练习6

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>插入节点</title>

</head>
<body>
    <h2 id="h">在上面插入节点</h2>
    <form id="frm" name="frm">
    输入文本:<input type="text" name="txt">
    <input type="button" value="前插入" onclick="insetNode('h',document.frm.txt.value);">
    </form>
    
    
 <script type="text/javascript">

    function insetNode(nodeId,str){//插入节点的函数
        var node=document.getElementById(nodeId);//获取指定id的元素
        var newNode=crNode(str);//创建节点
        if(node.parentNode)        //判断是否拥有父节点
            node.parentNode.insertBefore(newNode,node); //将创建的节点插入到指定元素的前面
    }
     
    function crNode(str){//创建节点的函数
        var newP=document.createElement("p");//创建p元素
        var newTxt=document.createTextNode(str);//创建文本节点
        newP.appendChild(newTxt);//将文本节点添加到创建的p元素中
        return newP;//返回创建的p元素
    }
</script>   
    
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_6/

 (3)Tips

   node.parentNode.insertBefore 。


7. 练习7

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>复制下拉菜单</title>

</head>   
<body>
<form>   
<hr>
    <select name="shopType" id="shopType">   
     <option value="%">请选择类型</option>   
     <option value="0">数码电子</option>   
     <option value="1">家用电器</option>
     <option value="2">床上用品</option>
    </select> 
<hr>
    <div id="di"></div>
    <input type="button" value="复制" onClick="AddRow(false)">
    <input type="button" value="深度复制" onClick="AddRow(true)">
</form>
       
<script type="text/javascript"> 
    function AddRow(bl){
        var sel=document.getElementById("shopType");//获取指定id的元素
        var newSelect=sel.cloneNode(bl);//复制节点
        var br=document.createElement("br");//创建br元素
        di.appendChild(newSelect);//将复制的新节点添加到指定节点的未尾
        di.appendChild(br);//将创建的br元素添加到指定节点的未尾
    }
</script>
    
</body>   
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_7/

 (3)Tips

   .cloneNode(true) 。


8. 练习8

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>删除节点</title>

</head>
<body>
<h2>删除节点</h2>
<div id="di"><p>少林派掌门空闻大师</p><p>武当派掌门张三丰</p><p>峨眉派掌门灭绝师太</p></div>
<form>
    <input type="button" value="删除" onclick="delNode()">
</form>
    
    
<script type="text/javascript">
    function delNode(){
        var deleteN=document.getElementById('di');//获取指定id的元素
        if(deleteN.hasChildNodes()){//判断是否有子节点
            deleteN.removeChild(deleteN.lastChild);//删除节点
        }
    }    
</script>
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_8/

 (3)Tips

    .hasChildNodes(),.removeChild,.lastChild 。


9. 练习9

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>替换标记和文本</title>
<style type="text/css">
input{margin-top:3px;}
</style>

</head>
<body>
<b id="b1">要被替换的文本内容</b>
<p>
输入html标签:<input id="bj" type="text" size="15"><br>
输入文本:<input id="txt" type="text" size="15"><br>
<input type="button" value="替换" onclick="repN(bj.value,txt.value)">
    
        
<script type="text/javascript">
    function repN(bj,str){
        var rep=document.getElementById('b1');//获取指定id的元素
        if(rep){//如果指定id的元素存在
            var newNode=document.createElement(bj);//创建节点
            newNode.id="b1";//设置节点的id属性值
            var newText=document.createTextNode(str);//创建文本节点
            newNode.appendChild(newText);//将文本节点添加到创建的节点元素中
            rep.parentNode.replaceChild(newNode,rep);//替换节点
        }
    }
</script>    
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_9/

 (3)Tips

    .id,.parentNode.replaceChild 。


10. 练习10

  (1)源代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>在页面的指定位置显示当前日期</title>

</head>
<body>
<div id="clock">当前日期:</div>
        
<script type="text/javascript">
function clockon(){
    var now=new Date();            //创建日期对象
    var year=now.getFullYear();            //获取年份
    var month=now.getMonth();        //获取月份
    var date=now.getDate();            //获取日期
    var day=now.getDay();            //获取星期
    var week;//声明表示星期的变量
    month=month+1;//获取实际月份
    var arr_week=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");//定义星期数组
    week=arr_week[day];            //获取中文星期
    time=year+"年"+month+"月"+date+"日 "+week;    //组合当前日期
    var textTime=document.createTextNode(time);    //创建文本节点
    document.getElementById("clock").appendChild(textTime);    //显示当前日期
}
    
window.onload=clockon;//页面载入后调用函数
</script>    
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_10/

 (3)Tips

    .createTextNode 。


11. 练习11

  (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>图片轮换</title>
<style type="text/css">
#tabs{
width:1200px;
height:3200px;
overflow:hidden;
float:left;
position:relative;}

/*#tabs>a:not(:first-child){display:none;}*/
</style>
        


    
</head>
    
<body>
    <div id='tabs'>
        <a name="i" href="#"><img src="video/13.png" width="100%" height="320" /></a>
        <a name="i" href="#"><img src="video/14.png" width="100%" height="320" /></a>
        <a name="i" href="#"><img src="video/bg.png" width="100%" height="320" /></a>
        <a name="i" href="#"><img src="video/poem.png" width="100%" height="320" /></a>
        <a name="i" href="#"><img src="video/success.png" width="100%" height="320" /></a>
    </div>
    
    
<script type="text/javascript">
var len = document.getElementsByName("i");//获取name属性值为i的元素
var pos = 0;//定义变量值为0
    
function changeimage(){
    len[pos].style.display = "none";//隐藏元素
    pos++;//变量值加1
    if(pos == len.length) pos=0;//变量值重新定义为0
    len[pos].style.display = "block";//显示元素
}
setInterval('changeimage()',3000);//每隔3秒钟执行一次changeimage()函数

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


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_11/

 (3)Tips

    #tabs>a:not(:first-child),.style.display,这回看清了吧 。


12. 练习12

  (1)源代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>分时问候</title>

</head>
<body>
<div id="time">显示当前时间</div>
<div id="greet">显示问候语</div>
    
    
<script type="text/javascript">
function ShowTime(){
    var strgreet = "";
    var datetime = new Date();        //获取当前时间
    var hour = datetime.getHours();    //获取小时
    var minu = datetime.getMinutes();    //获取分钟
    var seco = datetime.getSeconds();    //获取秒钟
    strtime =hour+":"+minu+":"+seco+" ";    //组合当前时间
    if(hour >= 0 && hour < 8){    //判断是否为早上
        strgreet ="早上好";
    }
    if(hour >= 8 && hour < 11){    //判断是否为上午
        strgreet ="上午好";
    }
    if(hour >= 11 && hour < 13){    //判断是否为中午
        strgreet = "中午好";
    }
    if(hour >= 13 && hour < 17){    //判断是否为下午
        strgreet ="下午好";
    }
    if(hour >= 17 && hour < 24){    //判断是否为晚上
        strgreet ="晚上好";
    }
    window.setTimeout("ShowTime()",1000);    //每隔1秒重新获取一次时间
    document.getElementById("time").innerHTML="现在是:<b>"+strtime+"</b>";
    document.getElementById("greet").innerText="<b>"+strgreet+"</b>";
}
window.onload=ShowTime;    //在页面载入后调用ShowTime()函数
</script>    
    
    
</body>
</html>


 (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_12/

 (3)Tips

    window.setTimeout,.innerHTML,.innerText 。


二、编程训练

1. 训练1

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>
<body>

<div id="show">
</div>
<p>
<form name="myform">
  请输入文字:<input type="text" name="t">
  <select name="color">
    <option value="red">红色</option>
    <option value="green">绿色</option>
    <option value="blue">蓝色</option>
  </select>
  <input type="button" value="添加" onClick="addText()">
</form>
    
<script type="text/javascript">
function addText(){
    var div = document.createElement('div');
    var t = myform.t.value;
    txt=document.createTextNode(t);
    div.style.color=myform.color.value;
    div.appendChild(txt);
    document.getElementById('show').appendChild(div);
}
</script>    
    
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_13/

  (3)Tips

    .createElement,createTextNode 。


2. 训练2

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
<style type="text/css">
div{margin:0 auto;line-height:23px;}
</style>
    
</head>
<body>
    
<div id="h">
    月溅星河 长路漫漫<br />
    风烟残尽 独影阑珊<br />
    谁叫我身手不凡<br />
    谁让我爱恨两难<br />
    到后来 肝肠寸断
</div>
    <p>
    <form id="form" name="form">
    请输入歌名:<input type="text" name="songname" />
    <input type="button" value="添加歌名" onclick="addSongName('h');" />
    </form>
    
    
<script type="text/javascript">
    function addSongName(nodeId){
        var newNode=document.createElement("h3");
        newNode.style.marginLeft="50px";
        var songname=document.form.songname.value;
        var newTxt=document.createTextNode(songname);
        newNode.appendChild(newTxt);
        var node=document.getElementById(nodeId);
        if(node.parentNode){
            if(songname=="悟空"){
                node.parentNode.insertBefore(newNode,node);
            }
        }
    }    
</script>    
    
        
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_14/

  (3)Tips

    .node.parentNote.insertBefore(),指定在谁之前 。


3. 训练3

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
<style type="text/css">
ul{list-style-type:none;}
</style>

</head>
<body>
<div>
    <h3>最新电影资讯</h3>
    <ul id="movie">
      <li id="1">1.《愤怒的小鸟》小鸟飞起来</li>
      <li id="2">2.《极度惊悚》胆小者勿入</li>
      <li id="3">3.《黑海夺金》裘德.洛成摸金校尉</li>
      <li id="4">4.《潜伏者》毒师卧底贩毒集团</li>
    </ul>
</div>
<form name="myform">
    输入影片资讯编号:<input type="text" name="num" />
    <input type="button" value="删除" onClick="delMovieInfo()" />    
</form>
    
    
<script type="text/javascript">
    function delMovieInfo(){
        var num=myform.num.value;
        var deleteN=document.getElementById('movie');
        if(deleteN.hasChildNodes()){
            deleteN.removeChild(document.getElementById(num));
        }
    }    
</script>    
    
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_15/

  (3)Tips

    .hasChildNodes,.removeChild 。


4. 训练4

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
    <style>
        ul{float: left;}
        input{display: block;clear: both;}
    </style>
</head>
<body>
<ul id="dry"><li>核桃</li><li>杏仁</li><li>草莓</li></ul>
<ul id="fruit"><li>苹果</li><li>葡萄</li><li>花生</li></ul>
<input type="button" value="移动" onclick="move()"/>
<script type="text/javascript">
    function move(){
        var node1=document.getElementById("dry").lastChild;
        var node2=document.getElementById("fruit").lastChild;
        document.getElementById("dry").appendChild(node2);
        document.getElementById("fruit").appendChild(node1);
    }
</script>

</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_16/

  (3)Tips

    .getElementById().lastChild,.appendChild 。


5. 训练5

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>
<body>

  <h3>在《天龙八部》中,虚竹是______派的掌门?</h3>
  <input type="radio" name="menpai" value="A">A 星宿&nbsp;&nbsp;
  <input type="radio" name="menpai" value="B">B 逍遥&nbsp;&nbsp;
  <input type="radio" name="menpai" value="C">C 少林&nbsp;&nbsp;
  <input type="radio" name="menpai" value="D">D 天山
  <br>
  <p>
  <input type="button" name="but" value="提交答案" onClick="check()">
      
      
<script type="text/javascript">
function check(){
    var answer;
    var menpai = document.getElementsByName('menpai');
    for(var i=0; i<menpai.length; i++){
        if(menpai[i].checked){
            answer=menpai[i].value;
        }
    }
    if(!answer){
        alert("请选择答案");
    }else if(answer=="B"){
        alert("答案正确");
    }else{
        alert("答案不正确");
    }
}
</script>      
      
      
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_17/

  (3)Tips

    .getElementByName 。


6. 训练6

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>
<body>

<a id="mr" href="http://www.mingrisoft.com">明日学院</a>
<input type="button" onclick="changeLink()" value="修改">
    
    
<script type="text/javascript">
  function changeLink(){
    document.getElementById('mr').innerHTML="明日网校";
    document.getElementById('mr').href="http://star.mingrisoft.com";
  }
</script>    
    
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_18/

  (3)Tips

    .innerHTML,.href 。


7. 训练7

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>

<body>

<input type="button" id="but" value="添加" onclick="addPic()">
    
<script type="text/javascript">
    function addPic(){
        resultDiv = document.createElement("div");//创建div元素
        resultDiv.innerHTML = "<img src='images/success.png' width='100%' height='100%'>";//为div设置图片
        document.body.appendChild(resultDiv);//向body中添加div元素
    }
</script>    
    
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_19/

  (3)Tips

     还行。


三、实践与练习

1. 实践1

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>
<body>

<div><b id="oldnode">一生只爱一个人</b></div>
<a href="javascript:changeFont()">将粗体改为斜体</a>
    
<script type="text/javascript">
function changeFont(){
    var oldnode = document.getElementById('oldnode');
    var newnode = document.createElement('i');
    var newText=document.createTextNode(oldnode.firstChild.nodeValue);
    newnode.appendChild(newText);
    oldnode.parentNode.replaceChild(newnode,oldnode);
}
</script>    
    
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_20/

  (3)Tips

     .createElement('i'),javascript:changeFont() 。


2. 实践2

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>

<body>

<form id="form1" name="form1" method="post" action="">
    <select name="year" id="year" onchange="getday()">
      <script type="text/javascript">
          var mydate=new Date();
          for(i=1990;i<=mydate.getFullYear();i++){
            document.write("<option value='"+i+"' "+(i==1985?"selected":"")+">"+i+"年</option>");
          }
      </script>
      </select>
        <select name="month" id="month" onchange="getday()">
      <script type="text/javascript">
          for(i=1;i<=12;i++){
            document.write("<option value='"+i+"' "+(i==1?"selected":"")+">"+i+"月</option>");
          }
      </script>
        </select>
        <select name="day" id="day">
      <script type="text/javascript">
          for(i=1;i<=31;i++){
            document.write("<option value='"+i+"' "+(i==1?"selected":"")+">"+i+"日</option>");
          }          
      </script>
      </select>
</form>
    
    
<script type="text/javascript">
    function append(d,v){
      var option=document.createElement("option");//创建元素option
      option.value=v;//把参数v作为元素的值
      option.innerText=v+"日";//把参数v作为元素的显示内容
      d.appendChild(option);//把元素option作为参数d的子节点
    }
    function getday(){
      var y=form1.year.value;//取得年份的值
      var m=form1.month.value;//取得月份的值
      var d=document.getElementById("day");//定位到id=day的节点
      d.innerHTML="";//把id=day节点的内容清空
      if(m==4 || m==6 || m==9 || m==11){//如果月份的值是4或6或9或11
        for(j=1;j<=30;j++){
          append(d,j);//把1到30循环加到天数当中
        }
      }else if(m==2){//如果月份的值是2
        if(y%4==0 || y%400==0 && y%100!=0){//如果年份是闰年
          for(j=1;j<=29;j++){
            append(d,j);//把1到29循环加到天数当中
          }
        }else{
          for(j=1;j<=28;j++){
            append(d,j);//不是闰年就把1到28循环加到天数当中
          }
        }
      }else{//否则如果月份的值是1或3或5或7或8或10或12
        for(j=1;j<=31;j++){
          append(d,j);//把1到31循环加到天数当中
        }
      }
    }
</script>
</body>
</html>

</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_21/

  (3)Tips

     selected专门选一个不存在的值。还是比较好理解的 。


3. 实践3

 (1)源代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title></title>
</head>

<body>
<form name="form">
    <label>请选择表情:</label>
    <select name="expression" onChange="showHead(this)">
        <option value="images/01.png">发呆</option>
        <option value="images/02.png">睡觉</option>
        <option value="images/03.png">难过</option>
        <option value="images/04.png">调皮</option>
        <option value="images/05.png">装酷</option>
    </select>
</form>
<div id="box"><img src="images/01.png" id="pp"></div>
    
    
<script type="text/javascript">
    function showHead(obj){
        var imgSrc=obj.value;
        var pp=document.getElementById("pp");
        //box.innerHTML="";
        //var img=document.createElement("img");
        pp.src=imgSrc;
        //box.appendChild(img);
    }
</script>
</body>
</html>

  (2)运行页面

    https://www.xinyizhishu.top/jsC/sc/11_22/

  (3)Tips

    直接替换属性我试过了也行。document.createElement("img") ,box.innerHTML="" 。

















JS入门到精通 第10章 文档(Document)对象 JS入门到精通 第12章 Window对象

游客 回复需填写必要信息