1

jQueryでリストに項目を追加する際に問題に直面しています。これが私が従う構文です。どちらも機能していません。

$("myList")[0].options.add(new Option("ListText", value)); //does not work

  $("myList").append($('<option>', {
                 text: "ListText",
                 value: value
    })); //does not work

 $("myList").append(new Option("ListText", value)); //does not work. 

ここで私のコードがどのように見えるか

<select id="myList" class="DropDownList Test" name="List">                                           
    <option value="selectid" selected="selected">--Please Select--</option> 
    <option value="test1">a</option> 
    <option value="test2">b</option> 
    <option value="test3">c</option>               
</select>

このようなことをしてイメージングをしましょう。もしそうしても失敗します。

function updateTheList(ListID, value, position) {

        switch (position) {
             case '1':
                 $(ListID).append(new Option("Text", value));
                break; 
        } //what is wrong with this syntax

    }

if ($(Name+ "-ListID").is(':visible')) {
            updateTheList($(Name+ "-ListID"), value, position);
        } // it does not work

正しい方法を教えてください。

ありがとう

4

3 に答える 3

8

#jquery セレクターにハッシュがありません。これを使って

$("#myList").append($('<option>', {
             text: "ListText",
             value: value
}));

特定の位置に挿入するには、これを使用します。上記の主な間違いは、Jquery オブジェクトを関数に渡し、それを別の jquery オブジェクトにラップしたことです。

function updateTheList(listId, text, value, position) {

    $(listId + ' option:eq(' + position + ')')
       .after('<option value=\"' + value + '\">' + text + '</option>');
}

if ($('#SomeListId').is(':visible')) {
    updateTheList('#SomeListId', 'Some text', 'Some value', 2);
}

また、命名規則に固執するようにしてください。メソッドとプロパティには camelCase を使用し、オブジェクトには PascalCase を使用します。

于 2013-01-08T11:43:22.210 に答える
6

あなたのセレクターは間違っています。$("#myList")IDで要素を選択する必要があります。

詳細については、jQuery のドキュメントを参照してください。

于 2013-01-08T11:43:39.937 に答える
1

2つのこと-

  1. #ID で選択する を逃しました。
  2. <option />ではなくで試してください<option>

    $('#mySelect').append($("", {値: キー, テキスト: 値}));

これはうまくいくはずです。

于 2013-01-08T12:01:19.600 に答える