Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成一个列表_Javascript_Html - Fatal编程技术网

Javascript 生成一个列表

Javascript 生成一个列表,javascript,html,Javascript,Html,因此,我想从一个数组生成一个列表,我编写了以下代码: function list() { table = new Array("Rabat", "Casablanca", "Marrakech", "Fes", "Tanger", "Agadir"); document.write('<select id="list1" size=6><option value="Rabat">Rabat</option><option val

因此,我想从一个数组生成一个列表,我编写了以下代码:

function list() {

    table = new Array("Rabat", "Casablanca", "Marrakech", "Fes", "Tanger", "Agadir");
    document.write('<select id="list1" size=6><option value="Rabat">Rabat</option><option     value="Casablanca">Casablanca</option></select>');

}
函数列表(){
表=新阵列(“拉巴特”、“卡萨布兰卡”、“马拉喀什”、“Fes”、“坦格”、“阿加迪尔”);
文件。书写(“拉巴特卡萨布兰卡”);
}

它可以工作,但我想知道是否有更好的编码方法

您可以使用循环遍历列表中的所有项目:

// you can use this instead of the new Array() syntax:
var table = ["Rabat", "Casablanca", "Marrakech", "Fes", "Tanger", "Agadir"];
var select = '<select id="list1" size="6">';
for (var i=0; i<table.length; i++) {
    select += '<option value="' + table[i] + '">' + table[i] + '</option>';
}
select += '</select>';
document.write(select); //you should probably not use document.write though...
//您可以使用此语法代替新的Array()语法:
var表=[“拉巴特”、“卡萨布兰卡”、“马拉喀什”、“Fes”、“坦格”、“阿加迪尔”];
var选择=“”;

对于(var i=0;i您可以使用循环遍历列表中的所有项目:

// you can use this instead of the new Array() syntax:
var table = ["Rabat", "Casablanca", "Marrakech", "Fes", "Tanger", "Agadir"];
var select = '<select id="list1" size="6">';
for (var i=0; i<table.length; i++) {
    select += '<option value="' + table[i] + '">' + table[i] + '</option>';
}
select += '</select>';
document.write(select); //you should probably not use document.write though...
//您可以使用此语法代替新的Array()语法:
var表=[“拉巴特”、“卡萨布兰卡”、“马拉喀什”、“Fes”、“坦格”、“阿加迪尔”];
var选择=“”;

对于(var i=0;i,您可以在数组上循环并生成字符串,而不是一次又一次地编写相同的代码

var list="";
for(i=0;i<table.length;i++){
var val=table[i];
  list+="<option value='"+val+"'>"+val+"</option";
 }
var list=”“;

对于(i=0;i,您可以循环数组并生成字符串,而不是一次又一次地编写相同的代码

var list="";
for(i=0;i<table.length;i++){
var val=table[i];
  list+="<option value='"+val+"'>"+val+"</option";
 }
var list=”“;
对于(i=0;iHTML:


JS:

函数列表(){
var i,
表=[“拉巴特”、“卡萨布兰卡”、“马拉喀什”、“Fes”、“坦格”、“阿加迪尔”],
select=document.getElementById('list1'),
出来
对于(i=0;i
小提琴:

HTML:


JS:

函数列表(){
var i,
表=[“拉巴特”、“卡萨布兰卡”、“马拉喀什”、“Fes”、“坦格”、“阿加迪尔”],
select=document.getElementById('list1'),
出来
对于(i=0;i
小提琴:


更好的方法?当然可能更适合。有两个问题:不要创建隐式全局变量,在声明变量时始终使用
var
。不要使用
document。在文档完全加载后编写
。它将替换整个文档。改为使用DOM操纵。此外,您甚至似乎没有使用数组。这个问题似乎与主题无关,因为它是关于codereview的。更好的方法?当然可能更适合。有两个问题:不要创建隐式全局变量,在声明变量时始终使用
var
。不要使用
文档。在文档完全加载后写入
。它将替换整个文档。使用DOM操作代替。而且,你甚至没有使用你的数组。这个问题似乎是偏离主题的,因为它是关于CODReVIEW的。@ LeBLMA是否使这个答案不好?“LeBLMA向下投票一个有效的答案是没有意义的。FLAG/DOWN投票表决这个问题。你可以考虑<代码>数组。
而不是字符串缩合。@Andy因为你让我好奇,所以我做了,正如你所看到的,性能速度确实对
join
有利,但其实差别不大。我认为循环更清晰一些。我也是@Joetje50。我想这是第一次有人去做一些研究根据我在这里写的东西。KUDOS……LeBLMA会让这个答案变得糟糕吗?“LeBLMA向下投票一个有效的答案是没有意义的。FLAG/DOWN投票表决这个问题。你可以考虑<代码>数组。
而不是字符串缩合。@Andy因为你让我好奇,所以我做了,正如你所看到的,性能速度确实对
join
有利,但其实差别不大。我认为循环更清晰一些。我也是@Joetje50。我想这是第一次有人去做一些研究基于我在这里写的东西。谢谢。您可能还应该在
size
属性的值周围使用引号。您可能还应该在
size
属性的值周围使用引号。