使用jquery将属性添加到所选项目

时间:2015-03-17 18:35:24

标签: jquery

我有一个使用selected-jquery插件的多选ListBox。我需要设置所选列表项的属性属性。

$(".chosen-select").chosen().change(function (evt) {
   var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
   alert(label);

   if (label == "Global Groups") {
      $(this.options[this.selectedIndex]).attr("grouping", "GlobalGroups");
   }
   else if (label == "Personal Groups") {
      $(this.options[this.selectedIndex]).attr("grouping", "PersonalGroups");
   }
   else {
      $(this.options[this.selectedIndex]).attr("grouping", "Individuals");
   }
});

label将在第一次返回正确的值,但不会为后续选择返回 我相信我只需要获取当前选定的项目来设置属性。然后在代码隐藏中,我将使用它来设置不同列表中的值。

如何设置当前所选项目以设置属性值?

感谢。

更新

<asp:ListBox ID="lstBoxTo" runat="server" SelectionMode="Multiple"
                    data-placeholder="Choose recipient(s)…" multiple="true" class="chosen-select">
        </asp:ListBox>

更新 这是整个document.ready功能:

 $(document).ready(function () {

        //Create groups for recipient dropdown list
        $(".chosen-select option[grouping='GlobalGroups']").wrapAll("<optgroup label='Global Groups'>");
        $(".chosen-select option[grouping='PersonalGroups']").wrapAll("<optgroup label='Personal Groups'>");
        $(".chosen-select option[grouping='Individuals']").wrapAll("<optgroup label='Individuals'>");

        //Configure the ListBox using the 'chosen' jquery plugin
        $(".chosen-select").chosen({
            search_contains: true,
            no_results_text: "Sorry, no match!",
            allow_single_deselect: true
        });
        $('.chosen-container').css('width', '600px');


        $(".chosen-select").chosen().change(function (evt) {
            var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
            alert(label);

            if (label == "Global Groups") {
                $(this.options[this.selectedIndex]).attr("grouping", "GlobalGroups");
            }
            else if (label == "Personal Groups") {
                $(this.options[this.selectedIndex]).attr("grouping", "PersonalGroups");
            }
            else {
                $(this.options[this.selectedIndex]).attr("grouping", "Individuals");
            }
        });
    });



 enter code here

1 个答案:

答案 0 :(得分:0)

它应该工作(未经测试)

$(".chosen-select").chosen().change(function (evt) {
        $(".chosen-select").find("option:selected").each(function(){
                    var label = $(this).closest('optgroup').prop('label');
                    alert(label);

                    if (label == "Global Groups") {
                        $(this).attr("grouping", "GlobalGroups");
                    }
                    else if (label == "Personal Groups") {
                        $(this).attr("grouping", "PersonalGroups");
                    }
                    else {
                        $(this).attr("grouping", "Individuals");
                    }
                });
        });