我在这里有一个小代码,我无法弄清楚是否有什么问题,我认为我的代码没问题,但我怀疑jquery中的this
选择器在.post
请求后似乎没有运行。
这是我的代码:
$('.days').each(function() {
day = jQuery.trim($(this).attr('id'));
//this validates if there are events in this day
$.post('includes/genAct.php', { thisDay: day, action: 'getMyEvent' }, function(data) {
if(data != 0) {
$(this).css('background', '#000').css('color', 'red');
}
});
});
如果我对返回的data
发出警报,它似乎正常工作。那里有任何后续想法吗?谢谢
答案 0 :(得分:2)
this
不是固定变量,它会根据上下文而变化。
在post
成功处理程序中,它可能与外部不一样。
我建议缓存结果:
var $this = $(this);
从那时起,您可以使用$this
来引用当前元素,无论您在each
函数中的哪个位置。
答案 1 :(得分:1)
您也可以使用each
这样的功能:
$('.days').each(function(i, val) {
//the variable val returns the current element
});
您可以使用val
代替this
。
i
顺便说一下当前的索引..:]