我循环通过它的“名称”收音机,以获得选定的“术语"的值,然后使用一个按钮添加数据到数据库与其他值。
const inputTerm = document.getElementsByName("terms")
propertyBtn.addEventListener("click", function () {
for (let i = 0; i < inputTerm.length; i++){
if(inputTerm[i].checked){
let pickedTerm = inputTerm[i].value
}
}
let propertyData = {
terms: pickedTerm,
title: inputTitle.value,
location: inputLocation.value,
};
push(addedPropertyInDB, propertyData);
});
字符串
使用此代码pickedTerm
未定义,我希望所有propertyData
作为一个推到firebase数据库
3条答案
按热度按时间qacovj5a1#
你需要在循环外声明pickedTerm。
字符串
stszievb2#
这是因为变量pickedTerm的作用域只在if语句中有效。
JavaScript中的作用域
作用域是当前执行的上下文,其中值和表达式是“可见的”或可以被引用。如果变量或表达式不在当前作用域中,则不能使用。
JavaScript有以下几种作用域:
阅读更多关于Scope
对于您当前的脚本,您需要在访问
pickedTerm
变量的作用域中的何处声明该变量。就是这样。编码快乐!!
字符串
xqnpmsa83#
经过几次尝试和错误。
我创建了一个单独的循环函数,它可以按照我想要的方式工作。
字符串