0

我正在使用以下代码:

 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)
);
                                });

上面的代码无法在下拉列表中添加新项目。但是如果我使用的是:

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

4

2 回答 2

2

你必须这样做:

$('#' + mySelect).append($('<option selected="selected"></option>').val(val).html(text));

因为您刚刚将 id 保存为 String 而没有 jQuery-Object

于 2013-08-22T12:47:59.923 回答
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是一个对象(假设您有唯一的 id,您正在使用 id 选择它)。objSelect在这里无关紧要。

如果您更改第一个场景:

var objSelect = $(this).parent().parent().find("select").first();
objSelect.append.....

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

于 2013-08-22T12:48:33.660 回答