在研究DOM时,我编写了以下脚本:
console.log(document);//how this will generate the last update id value
var x = document.getElementById("old").getAttribute("id");
var y = document.getElementById("old").setAttribute("id","IDChanged");
console.log(document);
<div id="old">first</div>
两个结果都是:
<div id="IDChanged"><div>
运行此代码片段后,我发现两个结果都生成了具有相同id的html文档IDCHANGED
,我期望第一个console.log将生成一个div文档,其ID为old
,第二个console.log
将生成div
ID为IDChanged
的文档。
那么,如何做这项工作?
答案 0 :(得分:0)
当您对document
元素更感兴趣时,您正在记录div
对象(由于某种原因没有意义)。我不知道为什么你说IDChanged
两次console.log()
语句根本不会产生document
两次,它们都会记录div
对象,而不是{{} 1}}。
如果你摆脱了第一个console.log()
并将最后一个更改为:
console.log(x,y);
你会看到你想要的结果。但实际上,忘了document
并专注于div
。我认为这是您希望在更改之前和之后查看id
的内容。
// Get a refernece to the div
var x = document.querySelector("div");
// Report the contents of the document before doing anything:
console.log(x);
// Change the ID of the element
x.setAttribute("id","IDChanged");
// Report the contents of the document after DOM manipulation:
console.log(x);
<div id="old">first</div>