存储元素的动态集合

Storing a dynamic collection of elements

本文关键字:集合 动态 元素 存储      更新时间:2023-09-26

我正在努力改进我主动改变Javascript/jQuery设备的编码方式。为了简化代码,我将元素集合存储在jQuery对象中,如下所示:

var links = $('a');

这节省了我的处理时间,不必不断地重新创建jQuery对象。然后运行影响这些元素外观的代码:

links.css('color', '#ff0000');

问题是,我脚本的其他部分创建新链接添加到该集合,我想依次更改。但是如果我对这个集合做任何操作,它当然只会影响原来的集合:

links.css('color', '#ffff00');

所以我的问题是:有没有一种方法可以创建一个jQuery元素集合,随着添加更多的标记而改变,重新定义集合?

由getElementsByTagName返回的htmlcollections和document的getElementsByClassName函数在dom的任何更新时都保持更新。

var htmlcollection = document.getElementsByTagName('a);
console.log(htmlcollection.length); // returns 0;
$('body').append("<a/>");
console.log(htmlcollection.length); //returns 1;

每次都可以使用$(htmlcollection)。我认为这样会更有效,因为您已经向jquery提供了元素。并且这些元素不需要每次都在dom上搜索。