我在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
请告诉我正确的方法。
由于
答案 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件事 -
#
以选择ID。尝试使用<option />
,而不是<option>
。
$('#mySelect')。append($(“”,{ 价值:关键, 文字:价值 }));
这应该有用。