jquery js“使用了Void函数返回值”的含义

oyt4ldly  于 2023-01-25  发布在  jQuery
关注(0)|答案(3)|浏览(510)

我有下面的代码,其中的警报是工作,但当我选择选项与给定的id,什么也没有发生. JS:

var connType = (function() {
  alert("test");
  $("#connType").change(function() {
    if ($(this).css("value") === 2 {
      $(".mgconn").css("display", "block");
    }
  });
})();

超文本标记语言

<div class="form-group row">
  <div class="col-md-3">
    <select class="form-control form-control-sm" id="connType" name="connection_type">
      <option selected value="1">first op</option>
      <option value="2">something</option>
    </select>
  </div>
</div>
<div class="form-group row mgconn" style="display: none">
     <div class="col-md-3">
          <input class="form-control input-sm" placeholder="" type="text"/>
                                           
                                    
</div>

在ide中,我突出显示了void函数,但我不明白它的意思,我不知道这里应该有什么返回值,很抱歉我的问题太简单了,我意识到它一定是一些基本的东西,我不知道在控制台中要注意什么,要测试它。

jq6vz3qz

jq6vz3qz1#

IDE警告是因为您将返回undefined的函数的结果赋给了变量。
这不是一个javascript错误,这只是一个IDE警告。根据您的IDE,您可能会在以下代码中收到相同的警告:

function example() {
}
var x = example()

您可以在代码中使用console.log(connType)(===undefined)来确认这一点。
您可以安全地删除代码中的var connType =部分,并运行IIFE,而无需为变量赋值。

t40tm48m

t40tm48m2#

我发现函数在html之前加载,因为我有另一个文件,其中有一个js的load()事件,我应该在那里调用函数。如果删除IIFE,ide警告就会消失。

eh57zj3b

eh57zj3b3#

下面是工作代码

<!DOCTYPE html>
    <html>
       <head>
      <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
       </head>
       <body>
          <div class="form-group row">
             <div class="col-md-3">
                <select class="form-control form-control-sm" id="connType" 
                   name="connection_type">
                   <option selected>first op</option>
                   <option value="something">something</option>
                </select>
             </div>
             <div class="mgconn" style="display:none"> Show on change</div>
          </div>
          <script>
             $("#connType").change(function(){
                 if($(this).val() === "something"){
                     $(".mgconn").css("display","block");
                  }else{
                     $(".mgconn").css("display","none");
                  }
             });
          </script>
       </body>
    </html>

相关问题