javascript - 使用 jquery 将数据与 ajax 响应进行比较

标签 javascript jquery ajax

我的脚本如下

$(document).ready(function () {
    $('body').find('.tree').fadeOut(0);

   $('.tree-title').click(function () {
	   var id = $(this).attr('id');
	   $.ajax({
			contentType : "application/json; charset=utf-8",
			dataType : "json",
			url : "loadSubFolders",
			type : 'GET',
			data : {
				id : id
			},
			success : function(response) {
				$.each(response, function(index, value) {
						response.push('<li class="tree-title" id='+value.folderId+'>'+value.folderName+'</li>');
						alert("Appended Successfully");
				});
				$('.tree').append( response.join('') );
			},
			error : function(res, textStatus) {
				var msg = "Unable to load Subfolder";
				alert(msg);
			}
		});
        setStatus($(this));
    });
});

在这里,我想将数据表示 id 与某些响应元素进行比较,例如

success : function(response) {
    		$.each(response, function(index, value) {
    	if(id==value.rootId){
    response.push('<li class="tree-title" id='+value.folderId+'>'+value.folderName+'</li>');
    	alert("Appended Successfully");
    	}
   else{
    response.push('<li class="tree-title" ></li>');
    alert("Append Failed");
    	}
   });
    $('.tree').append( response.join('') );
},

但它不起作用

我怎样才能实现这个目标?有人可以建议我吗?

最佳答案

您可以为成功回调提供属性,并使用 this 从闭包中访问它们。示例 this.id 您指定的自定义属性不能在 ajax 原型(prototype)中定义,否则您将重写默认值。试试这个:

$(document).ready(function () {
    $('body').find('.tree').fadeOut(0);

   $('.tree-title').click(function () {
       var id = $(this).attr('id');
       $.ajax({
            contentType : "application/json; charset=utf-8",
            dataType : "json",
            url : "loadSubFolders",
            type : 'GET',
            data : {
                id : id
            },
            id : id,
            success : function(response) {
                afterSuccess(response , this.id);

                function afterSuccess(data, i) {
                    $.each(data, function(index, value) {
                        if(i==value.rootId){
                            data.push('<li class="tree-title" id='+value.folderId+'>'+value.folderName+'</li>');
                            alert("Appended Successfully");
                        }
                        else{
                            alert("Append Failed");
                        }
                    });
                    $('.tree').append( data.join('') );
                }
            }
        });
        setStatus($(this));
    });
});

关于javascript - 使用 jquery 将数据与 ajax 响应进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51626742/

相关文章:

javascript - 在html中显示来自javascript数组的图像

javascript - 如何在 JSON 中使用占位符

javascript - jQuery:使用按钮旋转图像

javascript - JQuery-更改元素的 id 并在单击时调用函数

javascript - JQuery - 跨域 Ajax 调用 JSON 文件而不使用 JSONP

javascript - 组件渲染时加载组件 css

javascript - 将 Auth0 身份验证与现有用户数据库集成

javascript - 如何让我的功能在点击时执行

php - 加载动态 php 和 mysql 页面而不刷新 - AJAX

javascript - 根据用户屏幕大小加载 js 或 php