【问题标题】:Return in javascript在javascript中返回
【发布时间】:2012-08-29 20:21:57
【问题描述】:

我的函数本身有参数并且工作正常

javascript//

<script type="text/javascript">
function $(id){
    document.getElementById(id).style.color="#ff0000"
}
</script>

HTML//

<a href="#" onclick="$('me')">click me</a>
<div id="me">color</div>

现在我稍微改变一下这个不起作用的功能 javascript//

<script type="text/javascript">
function $(id){

    document.getElementById(id)
}

function aaa(){

    $('me').style.color="#ff0000"

}
</script>

HTML//

<a href="#" onclick="aaa()">click me</a>
<div id="me">color</div>

为什么这个函数在没有返回语句的情况下工作

<script type="text/javascript">
function $(id){

    alert(id)
}

function aaa(){

    $('me')

}
</script>

【问题讨论】:

  • 你的函数第二次没有返回任何东西;使用 return 语句。
  • 但是为什么我更新的问题在没有返回声明的情况下有效
  • 因为在您更新的问题中,实际事件发生在函数体内,您没有使用任何返回以供进一步使用!

标签: javascript html function return


【解决方案1】:
function $(id) {
  return document.getElementById(id)
}

【讨论】:

    【解决方案2】:

    您没有在 $ 函数中返回任何内容,因为 aaa 要获取您必须返回的元素

    function $(id){
        return document.getElementById(id);
    }
    

    【讨论】:

      【解决方案3】:

      您的function $(id) 不会返回任何内容。它应该返回您正在查找的元素:

      <script type="text/javascript">
      
      function $(id){
          return document.getElementById(id);
      }
      
      function aaa(){    
          $('me').style.color="#ff0000";
      }
      </script>
      

      PS。您可能应该避免将您的函数命名为$

      【讨论】:

      • 但是为什么这个功能会起作用。
      • @amit 因为第一个函数不返回任何内容,第二个函数也不对第一个函数的结果做任何事情。但是在您的情况下,您正在尝试访问从第一个函数返回的对象。但如果它没有返回任何东西,你只会得到“未定义”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2015-11-21
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多