创建并加入节点&练习

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>

 

posted @ 2020-04-13 00:39  林淼零  阅读(334)  评论(0编辑  收藏  举报