Javascript jQuery更新引用DOM元素的变量
我有两个变量,如下所示:Javascript jQuery更新引用DOM元素的变量,javascript,jquery,dom,Javascript,Jquery,Dom,我有两个变量,如下所示: var carousel = $('div.carousel ul'); var pics = carousel.children('li'); 稍后,使用insertBefore()将一些新的添加到旋转木马中,但是我的pics变量现在已过期,因此我必须调用pics=carousel.children('li')再次在我的函数中 有没有更好的方法在不重复遍历DOM的情况下执行此操作?jQuery有一个add()函数,它将接受一个参数并将其添加到所选项目的列表中。您可以
var carousel = $('div.carousel ul');
var pics = carousel.children('li');
稍后,使用insertBefore()
将一些新的
添加到旋转木马中,但是我的pics
变量现在已过期,因此我必须调用pics=carousel.children('li')代码>再次在我的函数中
有没有更好的方法在不重复遍历DOM的情况下执行此操作?jQuery有一个add()
函数,它将接受一个参数并将其添加到所选项目的列表中。您可以调用pics.add(newli)
任何时候向DOM添加新列表项时。为什么pics=carousel.children('li')代码>如此耗时
如果列表已更改,则可以再次执行此操作,但如果确实确定要避免此操作,请尝试将2个新创建的li
添加到新数组中,然后向其中添加图片 我喜欢存储jQuery对象,以避免到处都有选择器。因此,我创建了一个微插件,用update
函数扩展jQuery对象。你可以找到
以下是代码供参考:
(function ( $ ) {
$.fn.update = function(){
var newElements = $(this.selector),i, oldLength = this.length;
this.length = newElements.length;
for(i=0;i<this.length;i++){
this[i] = newElements[i];
}
for(;i<oldLength;i++){
this[i] = undefined;
}
return this;
};
})(jQuery);
(函数($){
$.fn.update=函数(){
var newElements=$(this.selector),i,oldLength=this.length;
this.length=newElements.length;
对于(i=0;我必须+1你才能摆脱所有那些6。无论如何,知道这一点很酷。我不知道jquery有这样的东西。