0

jqueryの使い方を学び始めたばかりで、ドロップダウン項目を「従業員」または「グループ」にグループ化するはずのこのコードがありますが、出力は私が望むものではありません。助けてください。前もって感謝します

私のコード:

var selectControl = document.getElementById('MainContent_DropDownList1');
var item;

var EmployeesGRP = jQuery('<optgroup/>');
var GroupsGRP = jQuery('<optgroup/>');

EmployeesGRP .attr('label', 'Employees');
GroupsGRP .attr('label', 'Groups');

jQuery('option', selectControl).each(function (i) {
    item = jQuery(this);

    if (item.attr("class") == 'Employees') {
        item.wrapAll(EmployeesGRP );
    }
    else {
        item.wrapAll(GroupsGRP);
    }

});

結果は次のとおりです。

Employees
  Employee number one
Employees
  Employee number two
Groups
  Group number one
Groups
  Group number two

それ以外の:

Employees
  Employee number one
  Employee number two
Groups
  Group number one
  Group number two
4

2 に答える 2

1

.wrapAll() の代わりに .appendTo() を使用する必要があります

var selectControl = $('#MainContent_DropDownList1')

var EmployeesGRP = jQuery('<optgroup/>', {
    label:'Employees'
}).appendTo(selectControl);
var GroupsGRP = jQuery('<optgroup/>', {
    label:'Groups'
}).appendTo(selectControl);

jQuery('option', selectControl).each(function (i) {
    var item = jQuery(this);

    if (item.hasClass("Employees")) {
        item.appendTo(EmployeesGRP );
    } else {
        item.appendTo(GroupsGRP);
    }
});

デモ:フィドル

于 2013-05-09T09:32:40.593 に答える