jQuery..load() 不会给出响应/状态

jQuery. .load() won't give a response/status

本文关键字:响应 状态 load jQuery      更新时间:2023-09-26
var destino = '#myContainer';
var file = 'my-file.html'; //file exists in folder.
var seccion = 'myTarget';    //
var nivel   = 1;      // #myTarget_1 exists in document

$('.load').show();
console.log('before');
$(destino).load('/'+file+' #'+seccion+'_'+nivel, function(response, status, xhr){
    $('.load').hide();
    console.log(response);
    console.log(status);
}
console.log('done');

日志输出:

before
done

为什么这可能不会返回任何内容?没有错误或内容。如果有错误,我可以以某种方式伪造它以获得错误吗?

使用 .get() 而不是 .load() 。正如我所理解的.load()函数,它将指定的结果直接粘贴到定义的节点。不需要回调函数。

加载示例:

$('#result').load('ajax/test.html#whatever');

此页面上的内容 ID #whatever 将粘贴到当前页面的 #result。


获取示例:

var url = '/' + file;
$.get(url , function(data) {
    $('.load').hide();
    console.log($(data).find('#' + seccion + '_' + nivel));
});

根据上面的注释,您调用$.load()的元素是动态命名的。因此,请确保元素在执行加载之前存在。例如

if($(destino)) {
   $(destino).load();
} else {
   console.log(destino + ' does not exist');
}

另一种方法是按照@Armin所说的那样做,并使用$.get()然后$.appendTo()作为成功的回调。