3

これはおそらく非常に簡単ですが、今すぐ解決する方法がわかりません。送信ボタンがクリックされるたびに、以下の関数は入力フィールド 1 (名前) をチェックし、空でない場合は値を連想配列に追加し、説明を続けます。

私が望むのは、クリックごとに新しいレベル 1 要素を配列に追加することです。これはこれらの値を保持する必要があり、3 回クリックすると次のようになります。

Click 1:
    listObject[0]['listObjectName'] = 'Name 1';
    listObject[0]['listObjectDesc'] = 'Desc 1';

Click 2:
    listObject[1]['listObjectName'] = 'Name 2';
    listObject[1]['listObjectDesc'] = 'Desc 2';

Click 3:
    listObject[2]['listObjectName'] = 'Name 3';
    listObject[2]['listObjectDesc'] = 'Desc 3';

関数:

$('#addListObjectSubmit').click(function (e) {

            var listObjectName = $('#m_newListObject').val();

            if((listObjectName == null) || (listObjectName == '')) {
                return false;
            }
            else {
                listObjects['listObjectName'] = listObjectName;

                var listObjectDesc = $('#m_newListObjectDesc').val();

                if ((listObjectDesc == null) || (listObjectDesc == '')) {
                    listObjects['listObjectDesc'] = null;
                }
                else {
                    listObjects['listObjectDesc'] = listObjectDesc;
                }
            }

            e.preventdefault();
        });

それで、これに対処する最善の方法は何ですか?

4

2 に答える 2

5

連想配列のことを忘れていると、少しは役に立ちます。それらは理論的にはJavascriptにのみ存在します。実際、配列であっても、すべてがオブジェクトです。ただし、データ ストレージの観点から考えると、数値でしかインデックス付けできない単純な配列を使用することも、オブジェクトをデータ マップとして使用することもできます。

次の例では、配列を作成し ( の[]代わりによりコンパクトであることに注意してください)、それにマップ ( で作成new Array()) をプッシュ{}します。

var listObjects = [];
...
var newElem = {
    'listObjectName' : 'Name 1',
    'listObjectDesc' : 'Desc 1'
};
listObjects.push(newElem);

listObjects[0]その後、この要素が配列の最初の要素である場合は、 でこの要素にアクセスできます。

そのプロパティにアクセスする場合は、次のいずれかを使用できます。

listObjects[0].listObjectName
listObjects[0]['listObjectName']

.したがって、オブジェクトを扱う場合、表記法とブラケット表記法を使用できることがわかります。これらは同等ですが、後者の形式では、「連想配列」のように見えます (PHP から来た人にとってはなおさらです)。 .

于 2012-10-25T22:14:20.170 に答える
2

..つまり、クリックするたびに「連想配列」(JavaScript では「オブジェクト」と呼ばれます) を配列に追加したいということですか?

配列に物を追加する方法は次のpush()とおりです。

listObject.push({
    'listObjectName': 'Name X',
    'listObjectDesc': 'Description X'
})
于 2012-10-25T22:16:02.143 に答える