假设我有以下人为的例子:
var allListItems = $('li');
...
doSomeStuff();
...
allListItems.css({color: blue});
现在,当最后一行运行时,allListItems可能不再包含所有列表项。有些可能已添加到DOM中。有没有办法强制allListItems重新计算?
我知道我可以做allListItems = $(allListItems.selector, allListItems.context)
但内置了什么?
答案 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()
等各种修改方法后,它并不代表准确的状态。