在JavaScript函数中动态创建变量
Dynamically create variable in JavaScript function
我无法让它工作:
function formvalidation()
{
var SiteNum= document.getElementsByName("sitesinput")[0].value;
var i=1;
while (i<=SiteNum)
{
var SitePhone= document.getElementsByName(site['i'])[0].value;
alert(SitePhone);
i++;
}
}
如果我这样提醒:alert('document.getElementsByName(site["'+i+'"])[0].value');
,它将显示以下内容:
document.getElementsByName(site["1"])[0].value
document.getElementsByName(site["2"])[0].value
document.getElementsByName(site["3"])[0].value
但我不能把它变成一个变量。
感谢您的关注,B.
尝试替换行
var SitePhone= document.getElementsByName(site['i'])[0].value;
对于
var SitePhone= document.getElementsByName(site[i])[0].value;
从i
中删除引号。使用for
循环,因为它比while
循环更适合用例。
function formvalidation()
{
var SiteNum= document.getElementsByName("sitesinput")[0].value,
SitePhone;
for(var i=1; i<=SiteNum; i++)
{
SitePhone = document.getElementsByName(site[i])[0].value;
alert(SitePhone);
}
}
此外,JavaScript没有块级作用域,只有函数级作用域。
我喜欢这个解决方案,但它不会在没有引号(")的情况下工作,也就是说,如果做所有事情都一样,但把名字放在我自己身上,比如("site[1]")-它会工作的。
我知道你现在要去哪里了。
SitePhone = document.getElementsByName('site[' + i + ']')[0].value;
在行的i周围加引号
var SiteNum = document.getElementsByName(site['i'])[0].value
它正在查找由字符串"i"而不是变量i的值键控的元素。请尝试删除引号。
尝试
alert(document.getElementsByName(site[i])[0].value);
相关文章:
- 根据发送到javascript中函数的参数创建变量名
- 基于循环创建变量
- 创建变量并将其动态命名为javascript
- 使用For each循环-jquery创建变量
- 如何使用html5和javascript创建变量步骤
- 从另一个函数创建变量到 JavaScript 数组
- 有没有办法在javascript或jquery中创建变量选择器
- 从 JavaScript 中的参数创建变量名称
- 如何在 Javascript 中从数组创建变量数组
- jquery创建变量并使用它来加载 - laravel
- 使用 Javascript 创建变量数组(动态,下拉)
- 创建变量后,对定义的变量是坏的/好的/可选的
- HTML5 Web 存储创建变量
- 如何在 for 循环中创建变量
- 在 JQuery/Javascript 中设置和使用动态创建变量的属性
- 在 JavaScript 循环中创建变量
- 从 javascript 中的另一个变量名称创建变量键
- JavaScript 创建变量并使用循环为它们赋值
- 正确的格式结构创建变量
- JavaScript-如何使用递归创建变量嵌套循环