文档未定义错误javascript

时间:2015-07-11 06:08:30

标签: javascript dom recursion browser

我正在学习javascript并在我的javascript文件中创建了一些HTML,以便测试一个以节点作为参数的简单函数。我一直收到“未定义文档”错误。在我的JS文件/代码中我需要做什么来定义文档?

我已经尝试过此处列出的内容: ReferenceError: document is not defined (in plain JavaScript)

   var div1 = document.createElement("div");
var text1 = document.createTextNode('<div id="one">Some<span>node <em>contents</em> for</span>comparison</div>');
div1.appendChild(text1);
document.body.appendChild(div1);

var div2 = document.createElement("div");
var text2 = document.createTextNode('<div id="two">Some<span>node contents for</span>comparison</div>');
div2.appendChild(text2);
document.body.appendChild(div2);


var div3 = document.createElement("div");
var text3 = document.createTextNode('<div id="one">Some<span>node <strong>contents</strong> for</span>comparison</div>');
div3.appendChild(text3);
document.body.appendChild(div3);

var div4 = document.createElement("div");
var text4 = document.createTextNode('<div id="four">Some<span>node <em>contents</em> for</span>comparison</div>');
div4.appendChild(text4);
document.body.appendChild(div4);



function nodeEquivalence(node1, node2) {
    var equal = false;
    if (node1.innerHTML === node2.innerHTML) {
        if (node1.tagName === node2.tagName) {
            if (node1.type === node2.type) {
                equal = true;
            }
        }
    }
    return equal;
}

console.log(nodeEquivalence(div1, div4));

1 个答案:

答案 0 :(得分:0)

不要使用innerHTML。使用 createTextNode textContent

以正确的方式创建HTML元素:

var div = document.createElement("div");
var text = document.createTextNode("some text");
div.appendChild(text);
document.body.appendChild(div);

您的功能太复杂,无法与HTML节点进行比较。这个功能

function nodeEquivalence(node1, node2) {
    var equal = false;
    if (node1.innerHTML === node2.innerHTML) {
        if (node1.tagName === node2.tagName) {
            if (node1.type === node2.type) {
                equal = true;
            }
        }
    }
    return equal;
}

更容易。