如何正确访问传递给函数的JavaScript变量的名称?

问题描述 投票:0回答:1

我有两个JS变量,它们包含HTML输入元素的ID和一个span元素。

const male1DOB = document.getElementById('male1-dob');
const male1DOBError = document.getElementById('male1-dob-error');

我想在函数中引用这两个元素。当然,一种方法是将两个元素对象传递给函数,如下所示:

validateElemId(maleDOB, maleDOBError);
...
function validateElemId(elem, elemError) {
    // Print value of input element
    console.log(elem.value);
    // Print error string
    console.log(elemError.innerHTML);

但是由于这些元素共享一个共同的前缀,将前缀作为字符串传递给函数,然后将其插值到函数中,这样会更干净和更简洁:

validateElemId(maleDOB);
...
function validateElemId(elem) {
    console.log(<elem>.value);
    console.log(<elem>Error.innerHTML);
}

您如何做到这一点?如果我这样做:

validateElemId('maleDOB')
...
function validateElemId(elem) {
    console.log(`${elem}.value`);

我得到以下内容而不是元素的实际值:

maleDOB.value

如果我改为这样做:

validateElemId(maleDOB):
...
function validateElemId(elem) {
    console.log(elem.value);
    console.log(elemError.innerHTML);

我获得了正确的元素值,但是elemError出现了错误:

Uncaught ReferenceError: elemError is not defined.
javascript
1个回答
0
投票

我认为您可以执行以下操作:

function validateElemId(text){
const male1DOB = document.getElementById(text);
const male1DOBError = document.getElementById(`${text}-error`);

console.log(male1DOB.value);
console.log(male1DOBError.innerHTML);
}

顺便说一句,您的问题还不是100%清楚,希望我能对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.