如何解决调用函数时,如何在函数中传递参数并将该参数定义为变量?
我有一个网站,人们可以在那里举办研讨会。
如果某人参加了研讨会并想要编辑内容,请单击按钮。
如果单击该按钮,JS将检查数据库中是否有该用户和车间的数据。在这种情况下,将打开“车间编辑”页面。
取决于该车间数据库中的数据量,需要显示某些div(显示:块;)。
在JS中有一个if语句。所以:
if(stepOneTitle != "")
如果if语句为true,则单击一个按钮(button.click()),显示div并填充数据库中的数据,以便用户编辑数据。
因此一种情况的代码是:
if(stepOneTitle != ""){
const buttonStepOne = document.getElementById("button-step-one")
buttonStepOne.click()
}
我不想为所有eitgh div复制并粘贴此代码,因此我试图将其编写为一个可以对所有8个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" )
等。
问题是我无法使用'cont buttonStepOne'调用该函数,因为出现语法错误,提示“ const”是意外标记。
我尝试过:
function loadSteps(a,c){
if(a != ""){
const b = document.getElementById(c)
c.click()
};
};
loadSteps(stepOneTitle,buttonStepOne,"button-step-one" )
控制台给我一个错误,说已经声明了const b,因此我认为b在调用函数时绑定到const而不是buttonStepOne上。
我已经在Reddit上提出了要求,但是我得到了解决方法,但是没有直接的解决方案。
他们是这个问题的直接解决方案吗?
解决方法
您不会将变量传递给函数,而只是将值传递给函数。调用者无需指定变量名,只需在函数内使用局部变量即可。
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")
,
- 将标题和buttonId作为参数传递。
- 检查标题是否存在(如果存在),请使用ID获取按钮。
- 单击按钮。
此外,非常感谢使用描述性变量名。使代码更具可读性。
keytool -list -v -keystore "C:\Users\USERNAME\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
,
const
启动变量声明。变量声明是声明,因此它们不能成为调用表达式的参数列表的一部分。
不清楚在第二种情况下为什么会收到该错误。尽管b
是一个参数,但这不会阻止您声明另一个具有相同名称的变量(尤其是在不同范围内)。
无论哪种方式,您都不需要第二个参数。它没有任何作用。您不能以这种方式声明“动态”变量,也没有理由这样做。变量名称是什么都没关系。
只需:
function loadSteps(title,id){
if(title != ""){
const element = document.getElementById(id);
if (!element) {
console.error(`No such element: ${id}`);
return;
}
element.click();
}
}
loadSteps(stepOneTitle,"button-step-one" )
loadSteps(stepTwoTitle,"button-step-two" )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。