首页 > 解决方案 > 如何检查数组中是否存在事件目标值

问题描述

在我的 Rails 应用程序中,我想使用 Jquery 检查选​​择下拉列表中的事件目标值是否存在于数组中。如果是这样,我会隐藏一个 div,反之亦然。在我的控制器中,我派生了数组

def new
  @number = Course.where(course_type: "physical")
  @new_number = @number.ids
end

在我看来,我有这个 jquery 代码

<script>
 var number = <%= @new_number %>;
 document.addEventListener('DOMContentLoaded',function() {
    document.querySelector('select[name="lesson[course_id]"]').onchange=changeEventHandler;
},false);
function changeEventHandler(event) {
    code = event.target.value;
    if($.inArray(code,number) >= 0) {
      $(".vimeo").hide();
    }
    else {
        $(".vimeo").show();
    }
}

</script>

我想检查事件目标值是否包含在“数字数组”中。如果是,我想隐藏 div,反之亦然。

标签: javascriptjqueryruby-on-railsrubyajax

解决方案


<script>
  var courcesIds = <%= @new_number %>;
  $('select[name="lesson[course_id]"]').change(function(){
    if (courcesIds.includes(parseInt($(this).val()))) {
      $(".vimeo").css("display", "none");
      // $(".vimeo").hide();
    }
    else {
      $(".vimeo").css("display", "block");
      // $(".vimeo").show();
    }
  })
<script>

推荐阅读