好的,所以我在玩静态|| 实时节点列表,试图测试这个概念,我尝试了不同的场景,但有两个场景引起了我的注意:
var toBeLogged = document.getElementsByTagName('p');
console.log(toBeLogged.length); // Returns 1 to the console
var newEl = document.createElement('p');
document.body.appendChild(newEl);
console.log(toBeLogged.length); // Returns 2 to the console
这是有道理的,因为 getElementsBy... 是一个活动节点集合,因此在更新后再次请求该值时,它显然会返回更新后的值。
但是第二个场景有一个小的变化,使“实时”节点列表成为一个静态的:
var toBeLogged = document.getElementsByTagName('p').length;
console.log(toBeLogged); // Returns 1 to the console
var newEl = document.createElement('p');
document.body.appendChild(newEl);
console.log(toBeLogged); // Returns 1 also to the console
所以我的问题是:为什么为表示活动节点列表的长度属性而创建的变量没有返回活动值,因为变量的值直接表示节点列表而不添加属性。
我试图尽可能准确地描述事物。提前致谢。感谢您花在上面的时间。