我的问题主要是在这种情况下碰到的:我在一个循环中使用了插件来生成东西,然后在回调中,我想对原始的元素做一些操作,可这时候我找不到原始元素了,怎么办。下面上代码:/*日历插件*/$('.data-input input').each(function(index, el) {
$self = $(this);
$self.daterangepicker({}, function(){ console.log($self);//这里有问题
});
});这里的$self其实全都指向循环的最后一个$self,其实这边倒好理解,毕竟是个回调,等回调执行的时候,外部已经循环结束了,所以$self指向最后一个。所以,在不改动html的前提下,这种问题该怎么解决呢,ps:在回调里直接写$(this)指向的是插件本身
1 回答

千万里不及你
TA贡献1784条经验 获得超9个赞
$('.data-input input').each(function(index, el) { function($this){ $self.daterangepicker({}, function(){ console.log($self); }); }($(this)); });
这样可以吗?
还可以这样:
$('.data-input input').each(function(index, el) { var $self = $(this); $self.daterangepicker({}, function(){ console.log($self); }); });
添加回答
举报
0/150
提交
取消