如何循环jQuery AJAX请求返回的分隔字符串

时间:2011-03-30 16:06:53

标签: ajax jquery

因此,以下jQuery将一些值发布到PHP脚本并返回逗号分隔的字符串:

$.ajax({
    type: "POST",
    url: "_js/changetags.php",
    dataType:'json',
    success: function(data){

        arr = data.tagsinserted.split(',');

        $.each(arr, function(n, val){
            // toggle here
        });
    }
});

我要做的是将以下代码放入循环中,以便分隔字符串的值用于打开/关闭类:

$("#id_"+delimitedvalue).toggleClass("off on");
element.toggleClass("off on");

结果是,如果AJAX请求成功,页面上的整批元素将一起打开/关闭。

但是我无法让代码工作。我不知道如何将返回的分隔值赋给toggle函数。另外我怀疑有更好的方法可以做到这一点,并希望听到任何想法!

2 个答案:

答案 0 :(得分:9)

我认为你正在寻找这样的东西:

$.ajax({
    type: "POST",
    url: "_js/changetags.php",
    dataType:'json',
    success: function(data){
        var arr = data.tagsinserted.split(',');

        for(var i = 0; i<arr.length; i++){
            //Bad idea to use .each(), much slower in this case
            $("#id_"+arr[i]).toggleClass("off on");
            element.toggleClass("off on");
        }
    }
});

另外,如果您举例说明changetags.php正在回复的内容,我们可以提供更多帮助......

答案 1 :(得分:0)

你试过这个:

$.each(arr, function(n, val) {
    $('#id_'+val).toggleClass('off on');
});