在 Javascript 中,值不来,而是显示变量名称
In Javascript, Value not comming instead the variable name is displayed
function ProvideValue(){
Values = document.getElementById('HiddenValue').value;
FirstCut = Values.split("@#@"); // This will return the array ID@-@VALUE@-@TYPE
var CtrlId;
for (i = 0; i < FirstCut.length - 1; i++) {
Strings = FirstCut[i];
SecondCut = Strings.split("@-@");
if(SecondCut[2].match("TEXT")) {
CtrlId = "" + SecondCut[0];
document.getElementById(CtrlId).value = SecondCut[1];
}
}
}
这是我的代码,而不是我可以打印的 Id。但 CtrlId 不会替换为实际值。我收到错误document.getElementById(CtrlId).value is NULL
。我尝试对 ID 进行硬编码,然后它工作正常,但我无法对控件 ID 进行硬编码,因为有 1000 个控件并且每次 ID 更改时。
你的代码看起来很好(除了隐含的全局变量1),你的 HTML 文档中一定有其他问题......我也不确定为什么你省略了第一次切割的最后一个值,因为你正在length - 2
,因为i
小于length - 1
(不小于或等于),这意味着它一直到值length - 2
然后打破循环。
这是我创建的 JSFiddle,它使用您的代码并显示一些额外的控制台消息,并实际将值应用于隐藏输入提供的输入。
1重要
我var
应用于您的变量,因此它们不是应始终避免的隐含全局变量,因为它们只不过是隐藏错误的邪恶朋友。
我使用的代码
HTML 非常简单,但我确实有两个带有 ID 的元素,这些元素在隐藏字段的复合值中被处理:
<input type="hidden" id="hidden" value="me@-@Rob@-@text@#@you@-@Mike@-@text" />
<input id="me" value="name" />
<input id="you" value="name" />
脚本也很简单(出于JSFiddle简单的原因,在DOM上运行):
var vals = document.getElementById('hidden').value;
var firstCut = vals.split("@#@");
for(var i = 0; i < firstCut.length; i++) {
var ctrl = firstCut[i].split("@-@");
if (ctrl[2].match("text")) {
var id = ctrl[0];
document.getElementById(id).value = ctrl[1];
}
}
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 命令行中的Uglify js;不要弄乱变量名
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 这在JavaScript中是一个好的变量名吗
- 单击“JavaScript显示变量”
- Cartodb信息窗口未在地图上显示变量
- 在javascript中,在变量名之前使用var有什么区别/优势吗
- 在Javascript中连接一个动态变量名
- 如何使用jQuery循环变量名
- JavaScript将字符串转换为变量名
- 如何更新和显示变量
- 根据发送到javascript中函数的参数创建变量名
- 检索本身包含变量的 Jquery 变量名的值
- 如果项目不匹配,则显示变量
- 在 HTML 中显示变量的好做法是什么?
- 测试JavaScript是否符合异常变量名
- 在 Javascript 中,值不来,而是显示变量名称
- 动态变量名语法
- 动态jQuery变量名
- Jquery显示变量名而不是值