首页 > 解决方案 > 如何在函数中传递参数并在调用函数时将该参数定义为变量?

问题描述

我有一个网站,人们可以在那里进行研讨会。

如果有人创建了一个研讨会并想要编辑内容,他们点击一个按钮。

如果单击该按钮,JS 将检查数据库中是否有该用户和研讨会的数据。如果是这种情况,将打开研讨会编辑器页面。

取决于该研讨会的数据库中有多少数据,需要显示某些 div(显示:块;)。

在 JS 中有一个 if 语句。所以:

if(stepOneTitle != "")

当 if 语句为真时,单击按钮 (button.click()) 并显示 div 并填充数据库中的数据,以便用户编辑数据。

所以一种情况的代码是:

if(stepOneTitle != ""){
            const buttonStepOne = document.getElementById("button-step-one")

            buttonStepOne.click()

  }

我不想为所有 eitgh div 复制和粘贴此代码,所以我尝试将其变成一个可以调用所有八个 div 的函数:

function loadSteps(a,b,c){
            if(a != ""){
                b = document.getElementById(c)

                c.click()

            };
        };

 loadSteps(stepOneTitle, const buttonStepOne, "button-step-one" )

 loadSteps(stepTwoTitle, const buttonStepTwo, "button-step-two" )

ETC..

问题是我无法使用 'cont buttonStepOne' 调用该函数,因为我收到一个语法错误,说“const”是一个意外标记。

我努力了:

function loadSteps(a,b,c){
                if(a != ""){
                  const b = document.getElementById(c)
    
                    c.click()
   
                };
            };

     loadSteps(stepOneTitle, buttonStepOne, "button-step-one" )

控制台给我一个错误,说 const b 已经声明,所以我假设当我调用函数时 b 被绑定到 const 而不是 buttonStepOne 。

我在 Reddit 上问过,但我得到了解决方法,但没有直接的解决方案。

他们是这个问题的直接解决方案吗?

标签: javascriptfunctionvariables

解决方案


您不会将变量传递给函数,而只是传递值。调用者无需指定变量名,您可以在函数中使用局部变量。

function loadSteps(title, buttonId) {
  if (title != "") {
    let button = document.getElementById(buttonId)
    if (button) {
      button.click();
    }
  };
};

loadSteps(stepOneTitle, "button-step-one")

loadSteps(stepTwoTitle, "button-step-two")


推荐阅读