Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导航JSON对象_Javascript_Jquery_Json - Fatal编程技术网

Javascript 导航JSON对象

Javascript 导航JSON对象,javascript,jquery,json,Javascript,Jquery,Json,此处的总noob数: 我在('click')函数上得到了一个JSON结果,如下所示: {"1411939719-8696.jpeg":true} 我想根据呼叫的来源删除表中的一行,但由于某些原因它无法工作: $('#fileupload').fileupload({ dataType: 'json', done: function (e, data) { $.each(data.result.files, function (index, file) {

此处的总noob数:

我在('click')函数上得到了一个JSON结果,如下所示:

{"1411939719-8696.jpeg":true} 
我想根据呼叫的来源删除表中的一行,但由于某些原因它无法工作:

$('#fileupload').fileupload({
    dataType: 'json',
    done: function (e, data) {
        $.each(data.result.files, function (index, file) {
            $('<p/>').text(file.name).appendTo(document.body);
            var del = $('<button/>')
                .addClass('btn btn-danger')
                .attr('data-type', 'DELETE')
                .attr('data-url', file.deleteUrl)
                .text('DELETE');


               var thumb =  $('<img />', 
                   { id: file.thumbnailUrl+'_ID',
                     src: file.thumbnailUrl, 
                     alt:'MyAlt'}); 

               $('#preview').find('tbody')
                 .append($('<tr>')
                    .append($('<td>').append(thumb))
                    .append($('<td>').append(del))
                 );
                });


          }
    });

我需要删除包含“删除”按钮的行以及缩略图,但此代码不起作用?

我认为您调用了错误的作用域

也许这可以奏效:

$(document).on("click", ".btn-danger", function () {
  //save scope-object to that
  var that = this;
  $.ajax({
    url: $(this).attr("data-url"),
    type: $(this).attr("data-type")
  }).done(function (result) {
    $(that).closest("tr").remove(); 
    });
});

如果您能让我知道如何根据结果==true创建一个条件,那将是惊人的?我是否理解您的意思,响应是这样的:
{“1411939719-8696.jpeg”:true}
?是的,就是这样-第一部分是要删除的文件的文件名,并从服务器中重新恢复。首先,我想说这不是一个很好的响应,但也许你对此无能为力。它应该看起来更像
{name:“1411939719-8696.jpeg”,deleted:true}
。好的,那么您应该使用以下命令:
var response=JSON.parse(result)
因此您可以从JSON创建一个对象。然后,您可以访问对象的第一个键:
var key\u name=object.keys(response)[0]
,使用该键的名称,您可以获得值:
response[key\u name]
$(document).on("click", ".btn-danger", function () {
  //save scope-object to that
  var that = this;
  $.ajax({
    url: $(this).attr("data-url"),
    type: $(this).attr("data-type")
  }).done(function (result) {
    $(that).closest("tr").remove(); 
    });
});