0

getElementByIdを使用して同じIDまたは名前の配列を作成したい。

「追加ボタン」があります。ユーザーがこのボタンを押すと、mysqlから値を取得するドロップダウンリスト(動的)が生成されます。

ユーザーが3回押すと、次のようになります。

ここに画像の説明を入力してください このIDの配列を作成し、それをmysqlに保存したいと思います。

これは私のJSコードです:

  var menu_paket_array = document.getElementById('menu_paket').value;   

  alert(menu_paket_array);  

問題は、この配列(menu_paket_array)を作成しようとすると、この配列の値が最初のID(テスト1)のみになることです。

どうすればこれを修正できますか?

ありがとう...

4

4 に答える 4

2

複数の要素に同じIDを使用するのは誤りです。Idは、特定の要素を一意に識別することです。より多くの要素にそれを使用すると、その目的が無効になります。つまり、CSSスタイリングに必要な場合はclass、そのようなシナリオ専用に設計された代わりに使用してください。

于 2012-11-26T01:00:46.780 に答える
1

IDはページ上で一意である必要があります。1つの要素でのみ使用できます。

代わりに、CSSクラスまたは要素タイプを使用して反復します(このコードを示すフィドルを次に示します)。

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);
}

もちろん、より良い解決策は、jQuerymootoolsのようなdomライブラリを利用することです。これを使用すると、次のようなことができます。

jQuery(function($) {
    vals = [];
    $('select.CLASSNAME').each(function() { vals.push($(this).val()); });
    alert(vals.join(','));
});
于 2012-11-26T01:11:27.590 に答える
0

document.getElementsByClassName(names);

ここで、namesは、uがそれぞれに対して生成するクラス名です。

于 2012-11-26T01:00:34.410 に答える
0

id='menu_paket'@ WebnetMobile.comが説明した理由で)assignを使用して各要素を割り当てる代わりに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;
}
于 2012-11-26T01:08:11.703 に答える