我想使用getElementById ..
创建具有相同ID或名称的数组我有一个“添加按钮”,当用户按下此按钮时,它会生成一个下拉列表(动态),该值是从mysql获取的值。
当用户按3次时它看起来像这样..
我想创建一个这个id的数组,并将其存储到mysql ..
这是我的JS代码:
var menu_paket_array = document.getElementById('menu_paket').value;
alert(menu_paket_array);
问题是,当我尝试创建这个数组(menu_paket_array)时,这个数组中的值只是第一个id(Test 1)..
我该如何解决这个问题?
感谢...
答案 0 :(得分:2)
对多个元素使用相同的ID是错误的。 ID是唯一标识某个元素。将它用于更多元素会使其失败。如果您需要那样的CSS样式,那么请使用class
代替,这是专为此类场景设计的。
答案 1 :(得分:1)
An ID must be unique on a page。你只能在一个元素上使用它。
相反,使用CSS类或元素类型来迭代(here's a fiddle demonstrating this code):
function alertValues() {
var select, selects = document.getElementsByTagName('select');
var out = "";
for (var i = 0; i < selects.length; i++) {
select = selects[i];
if (select.className && select.className.match(/CLASSNAME_TO_INCLUDE/)) {
out += select.options[select.selectedIndex].value;
}
}
alert(out);
}
当然,更好的解决方案是使用像jQuery或mootools这样的dom库,您可以使用它来执行以下操作:
jQuery(function($) {
vals = [];
$('select.CLASSNAME').each(function() { vals.push($(this).val()); });
alert(vals.join(','));
});
答案 2 :(得分:0)
document.getElementsByClassName(名称);
其中names是为每个名称生成的类名。
答案 3 :(得分:0)
不是使用id='menu_paket'
(reasons @WebnetMobile.com explained)分配每个元素,而是指定class='menu_paket'
。
而不是var menu_paket_array=document.getElementById('menu_paket').value;
,
var temp_array = document.getElementsByClassName('menu_paket');
var menu_paket_array = [];
for(i in temp_array){
menu_paket_array[] = temp_array[i].value;
}