BB OS5中的jQuery.each()有故障吗?

BB OS5中的jQuery.each()有故障吗?,jquery,each,blackberry-os-v5,Jquery,Each,Blackberry Os V5,我一直在黑莓OS5设备(8530)上调试一些jQuery。有很多问题,但我已经缩小了范围,其中一个问题与jQuery的.each() 逻辑是这样的: $objectArray.each(function(){ alert('test'); if(...some logic...){ $(this).addClass('testClass'); }; }) 在任何普通浏览器中,我都会收到警报,单击OK,然后查看特定项(在本例中为TD),如果logic语句为true

我一直在黑莓OS5设备(8530)上调试一些jQuery。有很多问题,但我已经缩小了范围,其中一个问题与jQuery的
.each()

逻辑是这样的:

$objectArray.each(function(){
   alert('test');
   if(...some logic...){
       $(this).addClass('testClass');
   };
})
在任何普通浏览器中,我都会收到警报,单击OK,然后查看特定项(在本例中为TD),如果logic语句为true,则获取更新的类。然后,它会在其余的项目中重复,每个项目都会收到警报,我会发出警报,我会看到特定的TD类得到更新

然而,在BlackBery 8530上,我收到了每个警报,但TDs没有一个接一个地更新。取而代之的是,它们都在最后一次警报后立即得到更新,仅基于最后一次TD的if逻辑

这种浏览器可能存在严重的JS问题,但我想知道是否有办法解决这个问题。除了在jQuery中使用
.each()
之外,还有其他方法吗

更新:

更详细的代码示例:

$TRs.each(function(){
    var $TR = $(this);
    var $checkBoxTD = $TR.find('td.td3');
    var $checkBox = $checkBoxTD.find('input');

    alert($checkBox.is(':checked'));

    if ($checkBox.is(':checked')!=true){
       $checkBoxTD.addClass('notSelected');
    }
});
我在一张桌子的每一个TR上循环。每个TR中都有一个包含复选框的TD(.td3)。我需要检查每一个。如果未选中,我需要向TD添加一个类

在好的浏览器中,警报将显示true或false,并且基于该特定警报,您将看到在解除警报时该类被适当地应用于该行。然后每行重复一次

在BB OS5的浏览器中,每个警报都会弹出正确的值,但类直到最后一个警报/循环之后才会更新,因此每个TD类都只使用最后一个循环的逻辑

更新2(修复?):

多亏了Alex,我对这个做了更多的尝试,并找到了一种方法让它在顽固的浏览器中工作

$TRs.each(function(idx){
    var $TR = $(this);
    var $checkBoxTD = $TR.find('td.td3');
    var $checkBox = $checkBoxTD.find('input');

    alert($checkBox.is(':checked'));

    if ($checkBox.is(':checked')!=true){
       $TRs.eq(idx).find('td.td3').addClass('notSelected'); // <-- the 'fix'
    }
});
$TRs.每个(函数(idx){
var$TR=$(本);
var$checkBoxTD=$TR.find('td.td3');
var$checkBox=$checkBoxTD.find('input');
警报($checkBox.is(':checked'));
如果($checkBox.is(':checked')!=true){
$TRs.eq(idx).find('td.td3').addClass('notSelected');//试试这个:

$objectArray.each(function(idx, element){
   alert('test');
   if(...some logic...){
       $(element).addClass('testClass');
   };
})
更新:

试试这个,也许它的开销比较小

var $checkBox = $TRs.find('td.td3 input:not(:checked)');
$checkBox.each(function(){
    $(this).parent().addClass('notSelected');
});

$objectArray
是实数数组还是jQuery对象?它是jQuery对象。
$('td'的内容)
selector这听起来像是在堆叠
警报。你能改为调试页面上的一个div,看看它是否有效吗?UPDATE 2在有警报或没有警报的情况下都有效。其余的在有警报或没有警报的情况下都不起作用。因此警报似乎不是问题或解决方案的一个因素。在该示例中,“idx”代表什么?alas、 那不行。如果我用
alert(…某些逻辑的结果…)替换警报
每个警报中的每一行都会返回正确的值,但是类直到最后一个警报之后才被更新,最后一个警报会根据最后一个逻辑循环的值更新所有类。啊……我想我看到了问题。在上面的示例中,
元素作为DOM对象而不是jQuery对象传递。是吗可以改为传入jQuery对象吗?idx是当前循环迭代的索引(从零开始),element是当前DOM元素。如果需要jQuery对象,请使用$(element)。谢谢,Alex。仅供参考,我用更具体的代码示例更新了我的问题,希望更好地解释我试图完成的任务。