我们不确定我们正在寻找的是否可以这样做。我们使用JS生成HTML结构,我们希望在我们生成的div中加载外部HTML文件。
到目前为止,我们已使用此代码https://jsfiddle.net/tanaan/feouj1rq/1/,但我们得到undefined
我们也试过
var htmlFile1 = file_get_html( 'file1.html');
我们无法使其发挥作用,我们不确定它是否可行,这就是为什么我们想在这里问这个庞大的社区。这个想法基本上是使用我们使用JS生成的类.content在idv中加载外部HTML文件。
欢迎提出任何建议。
非常感谢你
答案 0 :(得分:1)
要在div中加载外部文件,您可以使用:
$( "#idofyourdiv" ).load( "some/html/on/your/server.html" );
但是,只有当该文件实际上在您的服务器而不是另一个域时。
将其加载到变量中使用:
$.get( "some/html/on/your/server.html", function( data ) {
// the contents is now in the variable data
alert( data );
});
答案 1 :(得分:0)
尝试
$('.content').load('file1.html')
你正在做$('.content').get('file1.html')
这是错误的,因为jQuery的.get()
实际上是一个AJAX方法,需要第二个参数作为回调函数。请改用$(selector).load()
加载本地文件
修改强>
我只是通过你的代码更彻底地阅读,你正在尝试将本地文件内容读入变量;你不能从浏览器那样做。 .load()
实际上是AJAX调用的辅助函数,因此您可以执行以下操作:
$.get("file.html", function(data) {
expandables[0].content = data;
})
执行expandables[0].content
的原因是因为调用是AJAX,因此在将其分配给另一个变量时可能没有准备好内容。这样做将确保expandables
即使在初始分配后也能获得内容。
答案 2 :(得分:0)
与使用$ .ajax函数的其他答案相比,您可以获得更多选项和更好的错误处理(加载文件时可能会出现错误):
$.ajax({url: "some/html/on/your/server.html", success: function(result){
$("#idofyourdiv").html(result);
}, error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
});
在你的代码中,它就在这一点上:
...
var item = $('<div />', {
class: 'item',
html: '<div><h2>' + e.title + '</h2></div>' +
// you do not set the content yet:
'<div class="content"><p></p></div></div>'
})
//here
$.ajax({url: "some/html/on/your/server.html", success: function(result){
item.find('.content:first > *').html(result);
}, error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
});
// the load function would also work instead:
// item.find('.content:first > *').load('file1.html')
...