You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过函数参数调用全局变量并在指定div中显示其值?

问题描述

定义了全局变量desc1、desc2、desc3,编写showDesc函数后,点击对应div时传入变量名字符串作为参数,但当前仅显示变量名而非变量值,需要实现点击div时显示对应全局变量的实际值。

原代码如下:

原JavaScript代码

var desc1 = "apple description";
var desc2 = "bananna description";
var desc3 = "orange description";

function showDesc(arg) {
  var myDesc = arg;
  document.getElementById('description').innerHTML = myDesc; 
}

原HTML代码

<div onclick="showDesc('desc1')">Apples</div>
<div onclick="showDesc('desc2')">Bannans</div>
<div onclick="showDesc('desc3')">Oranges</div>

<div id="description"></div>
解决方案

方法1:通过window对象访问全局变量

全局变量会自动挂载到window对象上,因此可以通过window[arg]获取对应变量的实际值:

function showDesc(arg) {
  var myDesc = window[arg]; // 从window对象中取出对应变量的值
  document.getElementById('description').innerHTML = myDesc; 
}

方法2:用对象统一存储描述信息(更推荐)

将所有描述信息封装到一个对象中,既避免污染全局作用域,也更便于后续维护:

修改后的JavaScript代码

var descriptions = {
  desc1: "apple description",
  desc2: "bananna description",
  desc3: "orange description"
};

function showDesc(arg) {
  var myDesc = descriptions[arg];
  document.getElementById('description').innerHTML = myDesc; 
}

HTML代码无需修改,保持原样即可。

方法3:直接传递变量值(简化写法)

如果不需要通过变量名字符串传递参数,也可以直接将变量值作为参数传入:

修改后的HTML代码

<div onclick="showDesc(desc1)">Apples</div>
<div onclick="showDesc(desc2)">Bannans</div>
<div onclick="showDesc(desc3)">Oranges</div>

<div id="description"></div>

对应的JavaScript代码

var desc1 = "apple description";
var desc2 = "bananna description";
var desc3 = "orange description";

function showDesc(arg) {
  document.getElementById('description').innerHTML = arg; 
}

内容的提问来源于stack exchange,提问作者Levi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:42:50