如何在更改事件中检索 Kendo MultiSelectFor 的发件人 ID?

How to retrieve the sender id of Kendo MultiSelectFor on change event?

我在部分视图中使用 Kendo MultiSelectFor。此部分视图动态呈现这些 multi select,因此它们的名称也是动态的。我有兴趣在更改事件触发时获取 ID,但似乎是一项艰巨的任务

我的多 select 列表如下

@(Html.Kendo().MultiSelectFor(x => x.Widget.lstParameters[j].SelectedItems)
                                            .Name("widget-multiselectvalue-" + j)
                                            .BindTo(new MultiSelectList(Model.Widget.lstParameters[j].MSLDropDownList, "Value", "Text"))
                                            .Placeholder("--Please Select--")
                                            .HtmlAttributes(new { @class = "check-if-change" })
                                            .Events(e => e.Change("widget.msl_change"))
            )

以下是我的 msl_change 活动

msl_change: function (e) {
    //var mslid = $(this)[0].id;
}

在查看 e.sender 时,它的 _tagID 与 multi select 列表的 ID 非常接近。我可以操纵这个标签 ID 来获取所需的部分,但我真的想避免这种攻击。 e.sender的截图如下

您非常接近 - 事件的发送者 属性 是 Kendo MultiSelect 的一个实例。 Kendo 个实例有一个名为 "element" 的 属性,它包含对其 DOM 元素的引用。知道后,您可以使用以下代码访问更改处理程序中的 ID:

var id = $(e.sender.element).prop("id");

或者,使用您注释掉的代码中的语法:

var id = $(e.sender.element)[0].id

或者,为了更好的衡量...:[=​​13=]

$(e.sender.element).get(0).id