我有两个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.
我认为您可以执行以下操作:
function validateElemId(text){
const male1DOB = document.getElementById(text);
const male1DOBError = document.getElementById(`${text}-error`);
console.log(male1DOB.value);
console.log(male1DOBError.innerHTML);
}
顺便说一句,您的问题还不是100%清楚,希望我能对您有所帮助。