0

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

var links = $('a');

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

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

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

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

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

4

1 回答 1

0

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上搜索。

于 2013-05-31T20:21:33.670 回答