0

我在这里有一个小代码,我无法弄清楚是否有问题,我认为我的代码没问题,但我怀疑 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它似乎工作正常。有没有后续的想法。谢谢

4

2 回答 2

2

this不是一个固定的变量,它会根据上下文而变化。

post成功处理程序内部,它的含义可能与在它外部不同。

我建议缓存结果:

var $this = $(this);

从那时起,$this无论您在each函数中的哪个位置,您都可以使用它来引用当前元素。

于 2013-07-17T01:56:55.227 回答
1

您还可以使用each这样的功能:

$('.days').each(function(i, val) {
 //the variable val returns the current element
});

您可以使用val而不是this.

i顺便说一句,是当前索引.. :]

于 2013-07-17T02:03:06.173 回答