所以我的代码看起来像这样。
$('#someId').load('SomeController/SomeAction' + ' #someAnotherId', function () {
console.log('page is loaded');
})
我知道这段代码应该取#someId
里面的html,将它删除并用它从服务器获取的html替换它,当它向'SomeController / SomeAction'发出请求时,而不是整个html ,只有'#someAnotherId'里面的部分。现在问题是如果我删除#someAnotheId
页面正确加载一切正常工作。但在我的情况下,我不是什么加载整个HTML我想加载它的一部分。为此,我使用上面编写的代码,但这段代码似乎冻结了整个页面。我有一个ajax服务器配置,所以当一些ajax调用等待回答时出现加载的东西,并且当浏览器执行上面写的代码时,加载的东西出现console.log()
很好地执行但是没有加载内容而且加载的东西没有去离开。有什么建议?任何帮助,将不胜感激。 (可能你会建议只提供我想要加载的html,但这意味着重建我的整个基础设施。这将是非常痛苦的。)
答案 0 :(得分:0)
您可以在此处尝试$.get()
:
$.get(url, function(data){
var htm = $(data).find('#someAnotherId')[0].outerHTML;//<--updated $(data)
$('#someId').html(htm);
},"html");
更改此
data.find('#someAnotherId')[0].outerHTML;
到此:
$(data).find('#someAnotherId')[0].outerHTML;
//^^^^^------wrap it as a jQuery object this way.