javascript - 如何将动态变量传递给 JS 中的函数?

标签 javascript variables literals

尝试动态传递 ids 会破坏函数:

<p id="email1" onclick="mailTo(this.id,'com','abc','info','My Website','I have a question for you: ')">Send us an email</p>
<p id="email2" onclick="mailTo(this.id,'org','xyz','support','My Other Website','I want to report a problem with your website.')">Report Website Problems</p>

硬编码document.querySelector('#email')成功,但需要id是动态的。 控制台正确打印 var。 错误:qS.addEventListener 不是一个函数。

function mailTo(idx, tld, domain, account, site, bodyText) {
  let qS = `document.querySelector('#${idx}')`;
  console.log(qS);
  let arrEmail = [tld, domain, account, site, bodyText];
  const buildEmail = arr => `${arr[2]}@${arr[1]}.${arr[0]}?subject=From%20the%20${arr[3]}%20website&body=${arr[4]}`;
  qS.addEventListener("click", event => {
    let str = `mailto:${buildEmail(arrEmail)}`;
    location.href = str;
  });
}

沙盒:https://codesandbox.io/s/p8k45v350

最佳答案

动态构建选择器参数...

let qS = document.querySelector(`#${idx}`);

关于javascript - 如何将动态变量传递给 JS 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54791493/

相关文章:

c++ - 常量和文字之间的混淆?

javascript - 从div中取出文本,插入文本区域,进行编辑,文本区域不显示?

javascript - 从 html 表单的文本字段中读取并检查用户的输入

java - Java中的两个 boolean 变量

c - 在循环中创建的变量在 C 中的迭代期间更改值

dart - 如何在Dart 2.2之后设置文字

javascript - puppeteer 师 : how check if browser is still open and working

javascript - 静态资源版本控制管理方法 : javascript/css/html files etc

javascript - 在 javascript 中使用变量重复

c# - 一种在 C# 中编写大数字文字的方法