根据布尔数组显示或隐藏jQuery元素

时间:2013-08-30 16:02:08

标签: javascript jquery

所以我有以下代码:

function aFunction(obj, myData)
{
    $.ajax({
        type: "POST",
        url: 'myUrl',
        data: myData,
        async: true,
        dataType: 'json',
        success: function(data)
        {
            // ???
        }
    });
}

我收到的data(正确)是一组布尔值。现在我需要根据每个布尔值显示jQuery对象:jQuery对象的数量和数组的大小是相同的。

现在,以下作为我的成功回调:

    success: function(data)
    {
        //obj.show();
        var pcom_array = $.makeArray(obj);

        for(var i = 0; i < data.length; i++)
        {
            console.log(pcom_array[i]);
            if(data[i] === true)
            {
                pcom_array[i].style.display = '';
            }
        }
    }

然而,将jQuery对象作为一个数组进行转换然后遍历数组并不会让我感到非常“jQuery-ish”。是否有jQuery方法或其他可以简化此方法的方法?

1 个答案:

答案 0 :(得分:2)

您可以使用.toggle() - 假设obj是一个jQuery包装器,其中包含一组目标元素,其顺序与数据数组中的顺序相同

success: function(data) {
    obj.each(function(idx, el){
        $(this).toggle(data[idx])
    }) 
}