$.ajax({
url: url,
data: {
'ajax': '1',
},
dataType: 'json',
success: somefunction
});
由于服务器端应用限制,我无法在其中设置更多的JSON变量,因此我必须将所有内容加载到内容中。这就是为什么我不得不将结果加载到jQuery中,然后搜索并替换页面上的一些元素,例如(在somefunction
中使用):
var somefunction = function(data) {
var con = $('<div></div>').html(data.content); // just $(data.content) is not working
$('div#mainContent').html(con.find('div#ajax-content').html());
... // same process with three more divs
}
编辑:请注意,我需要进行相同的过程来替换三个div!
还有更多相关内容,但作为示例,我希望这已经足够了。我的问题是:出于某种逻辑方式,我期望将结果加载到DOM中($(data.content)
),解析为html(con.find('dix#ajax-content').html()
)并返回到DOM($('div#mainContent').html()
)似乎会浪费一些资源并降低性能,因此我想知道是否有更快速的方法可以直接加载DOM,例如:
$('div#mainContent').dom(con.find('div#ajax-content').dom());
我试着在谷歌上搜索,但可能是因为我不知道该输入什么。此外,jQuery文档并没有给我很大的帮助。
一些事实:
- jQuery 1.9.1
- 可用jQuery UI 1.10.3
最后,我知道使用服务器端应用程序提供更多的JSON变量会更好,然而,我需要编写不太容易的代码,这需要更长的开发时间,而我现在没有这个时间。在客户端上执行它将是暂时的解决方案,但是,我不想降低性能。
附带问题:
在这种情况下使用find()
函数是否正确,或者有更好的方法?
编辑2(无法解析字符串) 我期望这样工作,但它没有:
content = '<div id="ajax-title">Pečivo běžné, sladké, slané</div>
<div id="ajax-whereami"><a href="/category/4">Chléba a pečivo</a> » Pečivo běžné, sladké, slané</div>';
$(content);
data.content
无论如何都是字符串。而且它对于标记为“不起作用”的行也没有帮助。 - tomis