我已经知道了
document.createElement("p");
document.createElement("p")
Javascript intepreter如何知道这两者之间的区别?
ID ? (什么是Js 属性)?也许其他?
答案 0 :(得分:7)
在这种特殊情况下:
document.createElement("p");
document.createElement("p")
JavaScript运行时不会担心所有元素,因为您没有保存返回的值。他们被扔掉了。
如果你写过,
var p1 = document.createElementById('p');
var p2 = document.createElementById('p');
那么你有两个独立的变量,所以你跟踪差异。
重要的是要注意JavaScript解释器本身并不太关心你的DOM节点。这不是真正的业务。如果你调用方法并创建对象,那么跟踪它们是个问题。
答案 1 :(得分:4)
让我们选择另一个现实生活中的例子:一个人如何将一个橙色与另一个橙色区分开来? 我看着篮子里面,注意到有多个橙色的球形物品
JavaScript解释器内部跟踪创建的对象。当一个对象没有被任何东西(变量)引用时,内置的垃圾收集器会破坏该对象。
答案 2 :(得分:3)
没有。 createElement返回对象引用,但是如果你没有将它分配给任何东西或直接使用它,它就会丢失。
var firstp = document.createElement("p");
var secondp = document.createElement("p");
然后你可以指定一个id或诸如此类的东西:
firstp.id = "first";
请记住,这还不在DOM中。你必须先将它插入某个地方才能被用户看到/找到getElementById。
为此您可以这样做:
document.body.appendChild(firstp);
答案 3 :(得分:1)
没有。当您调用document.createElement()
时,您创建了一个元素并将其插入到DOM中。然后,JavaScript可以按ID抓取某些p
元素,或者使用p
抓取其他getElementsByClassName()
(和其他)元素。
如果您已将返回的值分配给变量,则可以通过引用不同的变量来跟踪哪个是哪个。这是你区分它们,而不是JavaScript。
答案 4 :(得分:0)
您可以通过elemnts数组中的索引来引用它们:
document.getElementsByTagName('p')[0]
您可以为他们分配ID
document.getElementsByTagName('div')[0].id = 'first'
document.getElementsByTagName('div')[1].id = 'second'
通过id
引用它们document.getElementById('first')
这取决于你如何真正做到这一点......