zoukankan      html  css  js  c++  java
  • 创建并加入节点&练习

    1.节点的属性

    节点的属性:所有节点都有的属性 元素节点,   属性节点,   文本节点
    nodeType            只  读  属  性
    nodeName       返回对应节点的名字,只读属性
    nodeVALUE    可读写属性   null              属性值,   文本值

    2. 创建一个元素节点:
               createElement(): 按照给定的标签名创建一个新的元素节点.

               方法只有一个参数:被创建的元素节点的名字, 是一个字符串.
               方法的返回值:是一个指向新建节点的引用指针.

                                        返回值是一个元素节点, 所以它的 nodeType 属性值等于 1.
                                        新元素节点不会自动添加到文档里, 它只是一个存在于 JavaScript 上下文的对象.

    3. 创建一个文本节点:
               createTextNode(): 创建一个包含着给定文本的新文本节点.

                                            这个方法的返回值是一个指向新建文本节点引用指针.

                                           它是一个文本节点, 所以它的 nodeType 属性等于 3.
              方法只有一个参数:新建文本节点所包含的文本字符串. 新元素节点不会自动添加到文档里

    4. 为元素节点添加子节点:
               appendChild(): var reference = element.appendChild(newChild):

               给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点.
               方法的返回值是一个指向新增子节点的引用指针.

    dom7.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Untitled Document</title>
    
    <script type="text/javascript">
        window.onload = function() {
            //新创建的一个元素节点,并把该节点添加为文档中指定节点的子节点
            var liNode = document.createElement("li");
    
            //创建武汉的文本节点 ,createTextNode(String),
            var whText = document.createTextNode("武汉");
            liNode.appendChild(whText)
    
            var cityNode = document.getElementById("city");
            cityNode.appendChild(liNode);
    
        }
    </script>
    
    </head>
    <body>
        <p>你喜欢哪个城市?</p>
        <ul id="city">
            <li id="bj" name="BeiJing">北京</li>
            <li>上海</li>
            <li>东京</li>
            <li>首尔</li>
        </ul>
    
        <br>
        <br>
        <p>你喜欢哪款单机游戏?</p>
        <ul id="game">
            <li id="rl">红警</li>
            <li>实况</li>
            <li>极品飞车</li>
            <li>魔兽</li>
        </ul>
    
        <br>
        <br> name:
        <input type="text" name="username" id="name" value="xiaoxiaolin">
    </body>
    </html>

    练习2:

    exe3.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Untitled Document</title>
    
    <script type="text/javascript">
        //需求1:点击submit按钮,检查是否选择type,若没有选择则给出提示:"请选择类型"
        //      检查文本框中是否有输入(可以去除空格),若没有输入,则给出提示"请输入内容";
        //      若检查都通过,则在相应的ul节点中添加li节点
    
        
        //需求2:使包括新增的li,都能响应onclick事件:弹出li的文本值
        window.onload = function() {
            function  showContent(liNode){
                alert("^^"+liNode.firstChild.nodeValue);
            }
            
            var liNodes = document.getElementsByTagName("li");
            for (var i = 0; i < liNodes.length; i++) {
                liNodes[i].onclick = function(){
                    showContent(this);//当前的节点
                }
            }
            
            //id 用#表示
            //1. 获取 #submit 对应的按钮 submitBtn
            var submit =document.getElementById("submit");
            //2.为submit添加响应函数
            submit.onclick = function(){
                
            //4.检查是否选择type,若没有选择给出提示:"没有选择"
            //4.1选择所有的name = type,的节点types
            var types = document.getElementsByName("type");
            
            //4.2遍历types,检查是否有一个type的checked属性存在,存在就说明有一个type被选中了
            //   通过if(元素节点.属性名)来判断某一个元素节点是否有该属性
            var typeVal = null;
            for (var i = 0; i < types.length; i++) {
                if (types[i].checked) {
                    typeVal = types[i].value;
                    break;
                }
            }
            //4.3若没有任何一个type被选中,则弹出:"请选择类型",相应方法结束: return false
            if (!typeVal) {
                alert("请选择类型");
                return false;
            }
            
            //alert(typeVal);
            
            //5.获取name="name"的文本值(输入的文本值):通过value属性:nameVal
            var nameEle = document.getElementsByName("name")[0];
            var nameVal = nameEle.value;
            
            //6.使用正则表达式去除 nameVal的前后空格,
            var reg = /^s*|s*$/g;
             nameVal = nameVal.replace(reg,"");
             
             //使name的文本框也去除前后空格
             nameEle.value = nameVal;
            //7.把nameVal和""进行比较,若是"" 说明只输入空格,弹出"请输入内容"
            if (nameVal == "") {
                alert("请输入内容");
                return false;
            }
            
            //8.创建li节点
            var liNode =document.createElement("li");
            
            //9.利用 nameVal 创建文本节点
            var content = document.createTextNode("nameVal");
            
            //10.把创建的文本节点作为刚创建li节点的子节点
            liNode.appendChild(content);
            
            //12.为新创建的li添加 onclick响应函数
            liNode.onclick = function(){
                showContent(this);
            }
            
            //11.把上面的节点加为选择type对应的ul子节点
            document.getElementById(typeVal).appendChild(liNode);
            
        
                //3.在onclick响应函数的结尾添加return false 就可以取消提交按钮的行为
                 return false;
            }
        }
    </script>
    
    </head>
    <body>
        <p>你喜欢哪个城市?</p>
        <ul id="city">
            <li id="bj">北京</li>
            <li>上海</li>
            <li>东京</li>
            <li>首尔</li>
        </ul>
    
        <br>
        <br>
        <p>你喜欢哪款单机游戏?</p>
        <ul id="game">
            <li id="rl">红警</li>
            <li>实况</li>
            <li>极品飞车</li>
            <li>魔兽</li>
        </ul>
    
        <br>
        <br>
    
            <form action="dom-7.html" name="myform">
                
                <input type="radio" name="type" value="city">城市
                <input type="radio" name="type" value="game">游戏
            
                name: <input type="text" name="name"/>
            
                <input type="submit" value="Submit" id="submit"/>
                
            </form>
    </body>
    </html>
    All that work will definitely pay off
  • 相关阅读:
    #include
    算法导论 Chapter 9.3 Selection in worstcase linear time
    算法导论 Exercises 9.36
    算法导论 Exercises 9.37
    C++实现Ping
    算法导论 Exercises 9.39
    如何计算毫秒级的时间差
    如何产生 [0, 2147483647] 之间的随机数
    算法导论 Exercises 9.38
    KMP算法学习&总结
  • 原文地址:https://www.cnblogs.com/afangfang/p/12688931.html
Copyright © 2011-2022 走看看