Javascript jquery load()不使用数组循环
我试图做的是将数百个文件的列表存储在一个数组中,并使用jquery load()函数逐个循环加载它们的内容 我对jquery和javascript知之甚少,这是我设法编写的,但它不起作用Javascript jquery load()不使用数组循环,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,我试图做的是将数百个文件的列表存储在一个数组中,并使用jquery load()函数逐个循环加载它们的内容 我对jquery和javascript知之甚少,这是我设法编写的,但它不起作用 var files=['index1c.html','index23c.html']; for(var index = 0; index < files.length; index++){ var file = files[index]; $('#result').load('file .de
var files=['index1c.html','index23c.html'];
for(var index = 0; index < files.length; index++){
var file = files[index];
$('#result').load('file .desc');
}
更改:
$('#result').load('file .desc');
致:
请注意,load方法在附加新内容之前删除元素的内容。您可以创建唯一的ID,如result1
,result2
。。。和代码:
for(var index = 0; index < files.length; index++){
var file = files[index];
$('#result' + (index + 1) ).load(file + ' .desc');
}
或者,如果要附加
数据
,可以使用$.get
实用函数,而不是load
方法。您使用的是文本字符串'file.desc'
看起来您需要文件+'.desc'
'ab'
是字符串ab
,而a+'b'
是将变量a的内容附加到字符串'b'
的字符串jQuery.ajaxSetup({async:false})代码>
{async:false}
将保留rest代码的执行。一旦得到ajax代码的响应,其余代码将被执行。执行ajax响应后,将其重置为async
为truejQuery.ajaxSetup({async:true})代码>
所以最终的代码是
var files=['index1c.html','index23c.html'];
for(var index = 0; index < files.length; index++){
var file = files[index];
jQuery.ajaxSetup({async:false});
$('#result').load('file .desc');
jQuery.ajaxSetup({async:true})
}
var文件=['index1c.html','index23c.html'];
对于(var index=0;index
.load()
将在每次加载新文件时覆盖#result
的内容。这就是你想要发生的事吗?@Blender:不,我想添加内容。是的,这就是load()所做的,我没有注意到这一点。任何解决方案?“数百个文件”。可怜的小服务器,可怜的小客户端,可怜的小互联网。@工程师:如果在URL之后传递了选择器,jQuery将使用这些元素而不是整个页面。@Blender感谢您提供的信息。我不知道。有什么方法可以防止它被覆盖,而不是被附加吗?@Abhi您可以使用$.get
实用程序功能。可能的问题是Abhi-您需要保证文件的内容按请求的顺序列出吗?对于直接的循环加载,这是不能保证的。@未定义:我尝试使用$。get
,但看起来我需要使用一些服务器端技术来获取正确格式的数据。我尝试了这段代码$.get('index1c.html',函数(数据){alert(“数据加载:+data);})
但是它提供了加载的数据:[object XMLDocument]
并且当我解析xml时,它显示了null
@Abhi实际上同时加载了load和$。get需要服务器工作,如果您的服务器运行,请从服务器返回的数据创建一个jQuery对象,找到元素,然后将其追加到$(数据)。find('.desc')).appendTo(“#结果”)
for(var index = 0; index < files.length; index++){
var file = files[index];
$('#result' + (index + 1) ).load(file + ' .desc');
}
var $results = $('.results')
for(var index = 0; index < files.length; index++){
var file = files[index];
$results.eq(index).load(file + ' .desc');
}
var files=['index1c.html','index23c.html'];
for(var index = 0; index < files.length; index++){
var file = files[index];
jQuery.ajaxSetup({async:false});
$('#result').load('file .desc');
jQuery.ajaxSetup({async:true})
}