js 如何定义n个变量,只能用循环时创建多变量吗,怎么写哈,多谢各位大神。。

如:var sea_node=document.getElementById('sea_node').value;
如果要同时定义 var sea_node1=document.getElementById('sea_node1').value;
var sea_node2=document.getElementById('sea_node2').value;
。。。省略n个。。如何实现?

// 用数组
var arr_sea_nodes = [];
for (var i = 0; i < 5; i++) {
    // 因为第一个不需要加数字,所以0的时候index是空字符串
    var index = i || '';
    arr_sea_nodes[i] = document.getElementById('sea_node' + index).value
}

// 使用
var sea_node = arr_sea_nodes[0];
var sea_node1 = arr_sea_nodes[1];

// 用object
var obj_sea_nodes = {};
for (var i = 0; i < 5; i++) {
    // 因为第一个不需要加数字,所以0的时候index是空字符串
    var index = i || '';
    arr_sea_nodes[sea_node + index] = document.getElementById('sea_node' + index).value
}

// 使用
var sea_node = arr_sea_nodes.sea_node;
var sea_node1 = arr_sea_nodes.sea_node1;

追问

var sea_node,sea_node1。。这个要一个个写吗。如果有100个,那怎么办。。
我想用ajax, ajax_req("../ajax/get_cdn_node.php?sea_node="+sea_node,"callback_update_node");
希望把对应的+sea_node改成对应的各个sea_node,sea_node1,sea_node2。但又不可能一个个写

追答

想把值用逗号分开传过去吗

var sea_nodes = [];
for (var i = 0; i < 5; i++) {
    var index = i || '';
    sea_nodes[i] = document.getElementById('sea_node' + index).value
}
// 用逗号连接数组,返回字符串
sea_nodes = sea_nodes.join(',');

var url = "../ajax/get_cdn_node.php?sea_node="+sea_nodes+'加其他的';

追问

不是。相当于写多个 ajax_req("../ajax/get_node.php?sea_node="+sea_node,"callback_node");
"../ajax/get_node.php?sea_node="+sea_node1
“../ajax/get_node.php?sea_node="+sea_node2。。
sea_node如果有一百个不可能一个个写

追答

那写一个function,用的时候调用function

function send_ajax_req(id) {
    var sea_node = document.getElementById(id).value;
    ajax_req("../ajax/get_node.php?sea_node="+sea_node,"callback_node");
}
// 需要的时候调用
send_ajax_req('sea_node');

// 发送5个
for (var i = 0; i < 5; i++) {
    var index = i || '';
    send_ajax_req('sea_node' + index);
}

追问

ajax_req("../ajax/get_cdn_node.php?sea_node="+sea_node,"callback_update_node");
callback_update_node(){.. document.getElementById("zbsb_node").options..
callback_update_node 这边的zbsb_node 要怎么写哈 非常感谢。。

追答

把完整的贴出来,不要一点一点加。

追问

呃。。图片贴不了。。字数又太多了 能否加你Q,问下 。。谢谢哈

追答

发邮件给我吧,看看我能不能给你简化

[email protected]

追问

好 多谢。。

追答

ajax_req是自己写的吗? 怎么写的?

追问

仍旧发邮件上哈。。字数太多贴不了

追答

好的。

给你回邮件了,试试吧。我这里试不了。

温馨提示:答案为网友推荐,仅供参考