nodetype=1就是元素节点?这个nodetype是怎么个用法

来源:7-8 节点遍历(解决空白节点)

Victor19950925

2019-05-17 23:22:34

nodetype=1就是元素节点?这个nodetype是怎么个用法

写回答

2回答

qq_一切都是最好的安排_1

2019-05-17

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/7-2.css">
</head>
<body>
    <div class="wrap">
        <input id="add" type="button" value="添加元素">
        <input id="del" type="button" value="删除元素">
    </div>
    <ul id="container">我是ul
        <li>我是li1</li>
        <li>我是li2</li>
        <li>我是li3</li>
    </ul>
    <script src="js/domready.js"></script>
    <script>
        myReady(function(){
    var str="";//存储打印在文档的字符串
    /**
     * 递归查找文本所有节点名称
     * @param  {标签对象} node 标签
     * @return {string}      打印的文本
     */
    function travel(node){
       if (node.nodeType==1) {//node.nodeType==1,则不为空;node.nodeType==0,则返回空。
           str+=node.tagName+"--";//读取每个节点的名称,这个递归需要做的只有读取节点名称
       }
       for (var i = 0; i < node.childNodes.length; i++) {//遍历当前节点的所有子节点
           travel(node.childNodes[i]);//所有子节点进行递归
       }
    }
    travel(document);//document是当前文档:从html开始。
    document.write(str);//打印字符串
})
    </script>
</body>
</html>

以上是我写的用来遍历文档标签名称的代码,你可以仔细查看下。

首先你要理解:nodeType 表示节点类型。总而言之一句话:node.nodeType==1,节点类型则不是空节点(即不是空格);node.nodeType==0,则返回节点类型就是空节点。

回答不易,有望采纳!!!谢谢!!!

1
hq_一切都是最好的安排_1
h 对了还有上面还有 一个引用文件: <script src="js/domready.js"></script> 这里src的地址自己修改下。一下是domready.js的文件内容。 function myReady(fn){ //对于现代浏览器,对DOMContentLoaded事件的处理采用标准的事件绑定方式 if ( document.addEventListener ) { document.addEventListener("DOMContentLoaded", fn, false); } else { IEContentLoaded(fn); } //IE模拟DOMContentLoaded function IEContentLoaded (fn) { var d = window.document; var done = false; //只执行一次用户的回调函数init() var init = function () { if (!done) { done = true; fn(); } }; (function () { try { // DOM树未创建完之前调用doScroll会抛出错误 d.documentElement.doScroll('left'); } catch (e) { //延迟再试一次~ setTimeout(arguments.callee, 50); return; } // 没有错误就表示DOM树创建完毕,然后立马执行用户回调 init(); })(); //监听document的加载状态 d.onreadystatechange = function() { // 如果用户是在domReady之后绑定的函数,就立马执行 if (d.readyState == 'complete') { d.onreadystatechange = null; init(); } } } }
h019-05-17
共1条回复

qq_一切都是最好的安排_1

2019-05-17

对了还有上面还有 一个引用文件: <script src="js/domready.js"></script> 这里src的地址自己修改下。一下是domready.js的文件内容。

function myReady(fn){

    //对于现代浏览器,对DOMContentLoaded事件的处理采用标准的事件绑定方式
    if ( document.addEventListener ) {
        document.addEventListener("DOMContentLoaded", fn, false);
    } else {
        IEContentLoaded(fn);
    }

    //IE模拟DOMContentLoaded
    function IEContentLoaded (fn) {
        var d = window.document;
        var done = false;

        //只执行一次用户的回调函数init()
        var init = function () {
            if (!done) {
                done = true;
                fn();
            }
        };

        (function () {
            try {
                // DOM树未创建完之前调用doScroll会抛出错误
                d.documentElement.doScroll('left');
            } catch (e) {
                //延迟再试一次~
                setTimeout(arguments.callee, 50);
                return;
            }
            // 没有错误就表示DOM树创建完毕,然后立马执行用户回调
            init();
        })();

        //监听document的加载状态
        d.onreadystatechange = function() {
            // 如果用户是在domReady之后绑定的函数,就立马执行
            if (d.readyState == 'complete') {
                d.onreadystatechange = null;
                init();
            }
        }
    }
}


0

0 学习 · 40143 问题

查看课程