2015-07-11 81 views
0

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

我已经尝试过这里列出的东西: 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

感谢您的时间。我正在Chrome开发工具以及我的崇高控制台上测试这个...这只是javascript。 – devdropper87

+0

所以,没有DOM - 因此没有文件 –

回答

0

不要使用innerHTML。使用createTextNodetextContent

创建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; 
} 

要容易得多。