提问人:Justin Erdmier 提问时间:2/17/2022 更新时间:2/17/2022 访问量:40
将 JavaScript 函数参数传递给 jQuery
Passing JavaScript function parameters to jQuery
问:
我正在处理一些遗留代码。在重构的第一阶段,我将所有脚本更新为 jQuery,因为它们在 vanilla JS 和 jQuery 之间切换不一致。一切都很容易转换。但是,我在试图弄清楚如何将参数从 JavaScript 函数获取到 jQuery 选择器/函数中时遇到了问题。
为了上下文,原作者编写了这个通用的 JS 函数:
// Submits the specified form and command.
function globalSubmitForm(formName, elementName, commandText) {
document.getElementById(elementName).value = commandText;
document.getElementById(formName).submit();
}
我将函数重写为:
function globalSubmitForm(formName, elementName, commandText) {
$('#elementName').attr('value', 'commandText');
$('#formName').submit();
}
但是,我相信您已经看到,jQuery 选择器和函数正在逐字读取文本,而不是引用函数参数。
我没有尝试过太多实验。我仍然是 JavaScript 和 jQuery 的新手,并且刚刚生活在 jQuery 文档中,进行了大部分重构。但是,我无法找到任何文档或答案。
我尝试过的一件事是:
$('#' + elementName).attr('value', commandText);
$('#' + formName).submit();
但是,我还没有到可以测试这一点的地步。我的 IDE (PhpStorm 2021.3) 不再检查 JS 函数参数是否未使用,但我觉得可能有更好的方法来编写它。
我认为从commandText中删除引号可以正常工作,因为预期的参数是一个字符串。但是在jQuery选择器中连接参数感觉很笨拙,对我来说不太合适。
答: 暂无答案
评论
$(`#${elementName}`).attr('value', commandText)