我在目录下放了一些XML文件。我需要使用javascript填充下拉列表以显示所有这些XML文件名。我该怎么做?
答案 0 :(得分:1)
在情况和情况方面,你已经过于宽泛,所以我会回答你的问题。
鉴于以下内容:
<select>
的网页与文件列表位于同一服务器上。您需要以下设置:
创建转储文件名列表的服务器端文件
您需要查找一些方法来检索和转储文件列表。这就是JavaScript&amp; AJAX可以获取此列表并转入下拉列表。所述脚本的示例输出(我在下面的JavaScript中将其作为/server-side-file-list
别名)
file-001.xml
file-002.xml
file-003.xml
file-004.xml
设置页面上的<select>
<!-- Somewhere in the page -->
<select id="xml-file-list" name="xml-file-list"></select>
设置JavaScript / Ajax代码
<!-- This should go in the <head></head> portion of your page with the select -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
url: '/server-side-file-list',
success: function(d){
$.each(d.split(/[\r\n]+/),function(i,e){
$('<option />',{ value: e }).text(e).appendTo('#xml-file-list');
});
}
});
</script>
基本工作流程:
<select>
/server-side-file-list
脚本中获取文件列表<select>
<option>
s。-
更好的方法可能是在运行时将文件列表加载到页面中(如果可能)。也就是说,如果您正在处理的页面是ASP或PHP或其他类型的服务器端语言页面,则可以在调用页面时检索文件列表并在此时加载(并且完全避免使用javascript。)
答案 1 :(得分:0)
假设您正在讨论本地文件,则需要一个支持W3C FileSystem API的浏览器。
您可以在www.html5test.com上测试兼容性
答案 2 :(得分:0)
如果您对xml文件的名称完全不了解,则需要使用服务器端语言来获取服务器目录的文件列表。
否则,如果您控制文件名,解决方法可能是给他们一个渐进的名称(例如1.xml
,2.xml
...)并尝试制作一些链式的ajax {{1调用。
如果1.xml的ajax请求返回HEAD
服务器状态,则请求2.xml,依此类推,直到出现404错误。对于每个ajax调用,您可以将名称添加到数组,然后使用它来创建动态200
。
当然,就性能而言,这应该仅作为解决方法而且不可靠,因为即使资源也可能发生404存在,所以我强烈建议使用服务器端语言
无论如何,这是一个解释变通方法的jQuery 1.5+示例。假设您有select
和1.xml, 2.xml
。 HTML只是一个空选择
3.xml
使用Javascript / jQuery的
<select id="xmlfiles"></select>
,这显示了带选项的选择
./ 1.XML
./2.xml
./3.xml
(对不起我的冗长)