• 创建并加入节点&练习


    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
  • 相关阅读:
    UVa 10118 记忆化搜索 Free Candies
    CodeForces 568B DP Symmetric and Transitive
    UVa 11695 树的直径 Flight Planning
    UVa 10934 DP Dropping water balloons
    CodeForces 543D 树形DP Road Improvement
    CodeForces 570E DP Pig and Palindromes
    HDU 5396 区间DP 数学 Expression
    HDU 5402 模拟 构造 Travelling Salesman Problem
    HDU 5399 数学 Too Simple
    CodeForces 567F DP Mausoleum
  • 原文地址:https://www.cnblogs.com/afangfang/p/12688931.html
Copyright © 2020-2023  润新知