jquery - 从无线电输入全局保存变量
问题描述
具有以下 htmt 和功能。单击按钮后,我无法让 var skinColor 保存“浅色”或“深色”。当我选择一个单选按钮时,我需要如何定义它会全局保存 var ?我得到一个 skinColor 未定义错误,但这就是重点,我正在尝试定义 skinColor。
<input type="radio" id="load_lightskin" name="skin" value="light_skin">
<label for="light_skin">Light Skin</label>
<input type="radio" id="load_darkskin" name="skin" value="dark_skin">
<label for="dark_skin">Dark Skin</label>
<input id="InstallerSettings" type="button" onclick="SkinSettings()" value="Continue Install">
function SkinSettings(){
switch ($('input[name="skin"]:checked').val()){
case "light_skin":
var skinColor = "light";
load_template();
break;
case "dark_skin":
var skinColor = "dark";
load_template();
break;
default:
alert("You must select a skin to continue.");
break;
}
}
解决方案
您的问题是范围,您可以在此处找到有关范围的信息:https ://www.w3schools.com/js/js_scope.asp
但简而言之,当您在函数内声明变量时,它不能全局访问,您只能在同一个函数上访问它。如果你想从外部访问它,你需要在之前声明它;例子:
let thisVariableIsGlobal = "hello world!";
(function yourFunctionName(){
let thisVariableIsLocal = "Quick test";
// You can edit thisVariableIsGlobal here and it will be applied globally, but don't redefine it using the var, let, or const keywords!
})()
console.log(thisVariableIsGlobal ) // Return hello world!
console.log(thisVariableIsLocal ) // Return undefined
或者您可以使用全局对象,例如 chrome,您可以通过“窗口”对象访问它,但不建议这样做。
例子
(function yourFunctionName(){
window['thisVariableIsGlobal'] = 'Hello world';
})()
console.log(thisVariableIsGlobal ) // Return hello world!
推荐阅读
- python - 在张量流中得到一个 ValueError 说我的形状不兼容
- symfony - 选项卡式格式的 Symfony 4.4 配置 yaml
- gradle - 如何将嵌套集合添加到扩展
- python - 使用 qgis 和 shaply 错误:GEOSGeom_createLinearRing_r 返回一个 NULL 指针
- java - 如何在texview中显示来自firebase的一组数字的总和
- javascript - 使用 Laravel 和 javascript 时时区差异导致剩余时间不正确
- c# - 如何在 C# 中从 PowerShell 脚本运行 Azure 虚拟机
- html - 使用 flex 或 grid 在右侧浮动广告的卡片列表
- python - Typeerror 'dict_keys' 对象不可下标
- javascript - 如何向 php 文件发送 post 请求并在 firefox extnesion 中使用 webRequest 响应?