我使用以下代码:
var objSelect = $(this).parent().parent().find("select");
var mySelect = $(objSelect).attr('id'); //getting id from object of dropdownlist
var myOptions = {
val: 'test',
};
$.each(myOptions, function (val, text) {
mySelect.append(
$('<option selected="selected"></option>').val(val).html(text)
);
});
以上代码无法在dropdownlist中添加新项目。但如果我正在使用:
var objSelect = $(this).parent().parent().find("select");
var mySelect = $('#str_anodshape');//Directly giving id of dropdownlist
var myOptions = {
val: 'test',
};
$.each(myOptions, function (val, text) {
mySelect.append(
$('<option selected="selected"></option>').val(val).html(text)
);
});
然后我可以添加项目。
问题:
正如您在上面的代码中看到的,当我从 objSelect 获取下拉列表的ID时,我无法在下拉列表中添加新项目。
答案 0 :(得分:2)
你必须这样做:
$('#' + mySelect).append($('<option selected="selected"></option>').val(val).html(text));
因为您刚刚将id保存为String而没有jQuery-Object
答案 1 :(得分:0)
您的第一个场景:
var objSelect = $(this).parent().parent().find("select");
var mySelect = $(objSelect).attr('id');
这里mySelect
不是一个对象而是一组对象。这是因为您选择了所有“选择”元素。第二行将简单地获取该集合的第一个元素的id
。这个id
是字符串,你不能附加到字符串。
您的第二个场景:
var objSelect = $(this).parent().parent().find("select");
var mySelect = $('#str_anodshape');
这里mySelect
是一个对象(bcoz你用id选择它,假设你有唯一的id)。 objSelect
在这里并不重要。
如果您使用以下内容更改第一个方案:
var objSelect = $(this).parent().parent().find("select").first();
objSelect.append.....
然后它会起作用,因为它会将集合中的第一个元素作为一个对象进行操作。