2012-02-29 95 views
2

我试图找出结合下面的语句如何在短短的一条线这两个JavaScript线结合

document.getElementById('div1').appendChild(document.createElement('div')).id="div2"; 
document.getElementById('div2').appendChild(document.createTextNode('More about me')); 
+4

你为什么要合并它们? – 2012-02-29 06:04:54

+0

IDK只是好奇心,因为我正在学习语言,在书中我读了作者这样做了4个步骤,我只想知道是否有方法将它们合并成一行。对不起,我的英语): – Alejandro 2012-02-29 06:07:59

+0

这是一个很好的问题,因为它可以让你学习推荐的方法。现在的标准大部分都是正确的。 – Purag 2012-02-29 06:21:29

回答

2

appendChild()返回到刚才添加的节点的引用的一种方式,所以第二getElementById不必要:

document.getElementById('div1').appendChild(document.createElement('div')) 
.appendChild(document.createTextNode('More about me')) 
.parentNode.id="div2"; // only if you need the second div to have id="div2" for some other reason. 
0

声明:这根本不是一件好事,我会在一瞬间解释为什么。

document.getElementById("div1").innerHTML = document.getElementById("div1").innerHTML + "<div id='div2'>More about me</div>"; 

这样做是确保新div得到附加而不是简单地替换现有div的内容。

现在显然,这是非常丑陋的代码。

这是不好的原因是因为我们正在做的是插入我们似乎认为或被认为是实际的元素。这是错误的—我们插入一个字符串,稍后将其翻译为元素。这对我们来说纯粹是不方便的。

DOM脚本的使用(这是你在—之前实际创建一个元素并添加它)之前创建的元素作为实际的HTML对象。重点是它只是更多纯粹输入(并且在大多数情况下,执行比innerHTML更快)。

使用innerHTML现在变得越来越普遍,我喜欢让自己怀疑,仅仅因为我是一个Javascript书呆子,并且从我所了解的(在本网站上,实际上),DOM脚本是许多方面都好得多。

其次,DOM脚本可以比innerHTML更加整洁和易于维护。你可能会知道我上面给出的代码根本不方便。 ;)