我正在学习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));
答案 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;
}
更容易。