存储动态的元素集合

时间:2013-05-31 20:12:44

标签: javascript jquery html

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

var links = $('a');

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

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

问题是,我的脚本的其他部分创建了新的链接以添加到该集合,我依次想要改变。但是如果我尝试对该集合做任何事情,它当然只会影响原始集合:

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

所以我的问题是:有没有办法创建一个jQuery元素集合,当你向标记添加更多内容时会更改,重新定义集合?

1 个答案:

答案 0 :(得分:0)

getElementsByTagName返回的htmlcollections和文档的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上搜索这些元素。