通过从jquery中的dropdownlist对象获取id,在dropdownlist中添加新项

时间:2013-08-22 12:37:36

标签: jquery

我使用以下代码:

 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时,我无法在下拉列表中添加新项目。

2 个答案:

答案 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.....

然后它会起作用,因为它会将集合中的第一个元素作为一个对象进行操作。