在jquery中将项添加到列表中

时间:2013-01-08 11:40:58

标签: jquery html drop-down-menu asp-classic

我在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

请告诉我正确的方法。

由于

3 个答案:

答案 0 :(得分: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作为对象。

答案 1 :(得分:6)

你选择器错了。应按$("#myList")按ID选择元素。

您可以在jQuery's documentation了解更多相关信息。

答案 2 :(得分:1)

2件事 -

  1. 您错过了#以选择ID。
  2. 尝试使用<option />,而不是<option>

    $('#mySelect')。append($(“”,{         价值:关键,         文字:价值     }));

  3. 这应该有用。