我开始使用JavaScript和DOM,试图故意远离jQuery等等,至少在一段时间内。考虑到这一点,教程通常提供了一个例子,如本:了解基本的DOM链接
h = document.createElement("h1");
t = document.createTextNode("Hello.");
h.appendChild(t);
document.body.appendChild(h);
在试图简化这一点,避免变量,我成功地链接如下:
document.body.appendChild(document.createElement("h1")).appendChild(document.createTextNode("Hello."));
虽然这工作,我尝试缩短以下前置操作:
h = document.createElement("h1");
t = document.createTextNode("Put this on top.");
h.appendChild(t);
document.body.insertBefore(h,document.body.firstChild);
与下列:
document.body.insertBefore(document.createElement("h1")).appendChild(document.createTextNode("Put this on top."),document.body.firstChild);
但是这一次它并没有像预期的那样工作:文本被放置在BODY元素的最后,获得一个append而不是前置。
我想成功的第一个案例只是一个侥幸,但我不明白这个链式练习有什么问题。
您关闭'的insertBefore( )'createElement()'之后的'parens'。所以这个链似乎继续使用'appendChild()'方法。这令我感到惊讶,我会预料到一个错误。 –
尽管像这样链接作为了解这些方法如何工作的方法很有趣,但结果更难以阅读。必须向右滚动才能看到整个语句是令人讨厌的,但是您可以在'.appendChild()'之前或者在打开一个或多个方法的后面放置一个换行符... – nnnnnn
使用缩小工具“避免变量“ - 你只是让你的代码难以阅读,维护和扩展。 – jbabey