重新计算jquery匹配集?

时间:2011-12-19 02:09:48

标签: jquery

假设我有以下人为的例子:

var allListItems = $('li');
...
doSomeStuff();
...
allListItems.css({color: blue});

现在,当最后一行运行时,allListItems可能不再包含所有列表项。有些可能已添加到DOM中。有没有办法强制allListItems重新计算?

我知道我可以做allListItems = $(allListItems.selector, allListItems.context)但内置了什么?

2 个答案:

答案 0 :(得分:3)

不,再来一次。

仅供参考:有一个约定,jQuery对象以$:

开头

var $ allListItems = $('li');

答案 1 :(得分:1)

只要你需要刷新它,就再做一次。它只是一个javascript对象。如果你想要一个新的值,那么再创建它。

var allListItems = $('li');
...
doSomeStuff();
...
allListItems = $('li');    // refresh to make sure contains latest li tags
allListItems.css({color: blue});

如果你真的想要一种方法,我想你可以使用:

$.fn.refresh = function() {
    return $(this.selector, this.context);
}

但是,它只会在某些情况下起作用,因为this.selector有时只有效。例如,在使用add()等各种修改方法后,它并不代表准确的状态。