如何检查哪个元素引发了on change事件

时间:2018-09-19 14:22:09

标签: javascript jquery

这里是新手。我继承了一些未完成的页面,在一个页面上有两个下拉菜单,一旦在第一个中选择了值,就使用on change jquery事件创建子下拉菜单。

与用户交谈后,不需要这些下拉菜单之一来执行此操作。两组下拉菜单的名称和ID不同,但类别相同。我想了解事件中修改了下拉列表的名称或ID,但到目前为止在语法上还没有运气。

编辑:我在这里添加了on change事件代码以供参考。 html下拉列表是由一些真正奇怪的嵌套局部视图生成的

   $(document).on("change",
   ".genericClass",
   function () {

      $(this).addClass("updated");
      if ($(this).hasClass("blank")) {
         $(this).removeClass("blank");
         var $newAddRow = $(this).parents(".relationControl:first").find(".relationAddRowTemplate")
             .clone().removeClass("relationAddRowTemplate")
             .addClass("relationAddRow")
             .show();
         $newAddRow.insertAfter($(this));
      }
   });

2 个答案:

答案 0 :(得分:0)

您可以使用下面的代码,您将获取触发事件的select元素引发的ID

 $(document).on("change",
    ".genericClass",
    function () {
        alert($(this).attr('id'));
        $(this).addClass("updated");
        if ($(this).hasClass("blank")) {
            $(this).removeClass("blank");
            var $newAddRow = $(this).parents(".relationControl:first").find(".relationAddRowTemplate")
                .clone().removeClass("relationAddRowTemplate")
                .addClass("relationAddRow")
                .show();
            $newAddRow.insertAfter($(this));
        }
    });

答案 1 :(得分:0)

您有两个选择:

1-使用监听器

select.addEventListener( 'change', event => {}); then event.target

2-添加范围监视

$scope.$watch(function () { return self.selectedValue; }, function (newValue, oldValue) {
                    if (newFilter != oldFilter) {
                     // call what ever you want   
                    }
                }, true);