2013-11-27 67 views
0

我有这个任务,我应该在HTML/javascript中制作一种打印机,并且我被困在节点/ DOM部分(很难!)。 所以我应该在addParagraph中创建一个段落节点和一个textnode,并将它们链接起来。我的全局变量'ntext'将跟踪textnode,并且每个新的段落节点应该添加到具有'output'类的DOM属性中。用文本节点打印段落

在addLetter(c)函数中,如果ntext未定义,则应该再次调用addParagraph()函数。如果它不是未定义的,它应该打印该值(不这样做)。

var ntext; 

function addParagraph() { 

    var textnode; 
    var paragraphn; 
    var div; 

    paragraphn = document.createElement('p'); 
    textnode = document.createTextNode(""); 
    paragraphn.appendChild(textnode); 

    ntext = textnode; 
    div = document.getElementById("output"); 
    div.lastChild(paragraphn); 
} 

这是段落的一部分。

这是打印部分。

function addLetter(c){ 
if (ntext == 'undefined') { 
    addParagraph(); 
} 

ntext.firstChild.appendData(c); 
} 

哦,和HTML5代码是100%正确的,因为它是我的老师谁做的,我的任务是只做javascript。

当然,我忘了添加我的问题,好吧,这整个事情不会添加我点击的字母,我不知道为什么!

谢谢!

+0

问题是什么? – bjb568

+0

它不起作用,它不会添加我点击的字母 –

+0

Make a [fiddle](http://jsfiddle.net) – bjb568

回答

0

您的状态ntext == 'undefined'。您正在测试字符串'undefined'而不是undefined property。将其更改为:

if (ntext == undefined) { 
+0

不幸的是,它没有工作,但谢谢,当然没有纠正错误! –

+0

对不起,我忘了给你添加@mechanicalfish –

+0

是的,你的代码还有其他问题,我不完全确定你想做什么,但看看这个:http://jsfiddle.net/ukhk3/1/这是你想要的吗? – mechanicalfish