gpt4 book ai didi

javascript - 使用变量名 JavaScript(字面意思)

转载 作者:行者123 更新时间:2023-11-30 07:06:17 25 4
gpt4 key购买 nike

如何引用变量的名称(字面意思是变量的名称)?

我有以下代码:

var thisVariableName = 'path/filename.js';

var script = document.createElement('script');
script.id = **I WANT THE TEXT "thisVariableName" to be added HERE**
script.type = 'text/javascript';
script.src = thisVariableName;

所以如果输出 script.id,我会得到 thisVariableName,而不是变量的值

一些回应之后:

我想系统化添加许多脚本文件。在下面的示例中,我添加了四个文件,但假设我必须添加 30 多个文件(请不要问为什么我需要添加 30 多个文件;毕竟这是计算的 promise )

到目前为止,我知道如何完成这项工作的唯一方法是创建两个单独的数组;数组 1 用于文件名字符串,数组 2 用于文件路径,或者按照 Felix Kling 的建议,为每个变量创建一个对象:

var jQueryPath = 'js/jquery-1.5.1.js';
var jQueryUICore = 'js/jquery.ui.core.js';
var jQueryUIWidget = 'js/jquery.ui.widget.js';
var jQueryUITabs = 'js/jquery.ui.tabs.js';

var fileNames = new Array ('jQueryPath','jQueryUICore','jQueryUIWidget','jQueryUITabs');

var filePaths = new Array (jQueryPath,jQueryUICore,jQueryUIWidget,jQueryUITabs);

var head = document.getElementsByTagName("head")[0];

for (var i=0;i<4;i++){

var script = document.createElement('script');
script.setAttribute('id',fileNames[i]);
script.setAttribute('type','text/javascript');
script.setAttribute('src', filePaths[i]);
head.appendChild(script);

}

因此,无论我是创建数组来保存变量的名称和值,还是创建对象,都需要为每个文件分别创建这两个属性。

我希望我可以引用由变量组成的数组的文字变量名称;即:

var onlyOneArray = new Array (jQueryPath,jQueryUICore,jQueryUIWidget,jQueryUITabs);

for (var i=0;i<4;i++){

var script = document.createElement('script');
script.setAttribute('id',**onlyOneArra[i] the NAME**);
script.setAttribute('type','text/javascript');
script.setAttribute('src', onlyOneArray[i]);
head.appendChild(script);

}

最佳答案

您无法在运行时获取变量的名称。

我建议采用更有条理的方法,例如通过将变量存储为对象的属性。然后你可以遍历这个对象:

var scripts = {
thisVariableName: 'path/filename.js'
};

for(var name in scripts) {
if(scripts.hasOwnProperty(name)) {
var script = document.createElement('script');
script.id = name;
script.type = 'text/javascript';
script.src = scripts[name];
//....
}
}

更新:关于您的更改,您最终应该做的是:

var scripts = {
jQueryPath: 'js/jquery-1.5.1.js',
jQueryUICore: 'js/jquery.ui.core.js',
jQueryUIWidget: 'js/jquery.ui.widget.js',
jQueryUITabs: 'js/jquery.ui.tabs.js'
};

var head = document.getElementsByTagName("head")[0];

for(var name in scripts) {
if(scripts.hasOwnProperty(name)) {
var script = document.createElement('script');
script.setAttribute('id', name);
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', scripts[name]);
head.appendChild(script);
}
}

关于javascript - 使用变量名 JavaScript(字面意思),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6104285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com