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($("", { value: key, text: value }));

这应该有效。

于 2013-01-08T12:01:19.600 回答