Javascript 字符串未获取连接的变量值
Javascript string not getting concatenated variable value?
在HTML表单中,我正在使用jquery/javascript创建动态HTML元素。为了给动态元素提供不同的 ID,我正在使用循环迭代变量。我的想法是循环它会自动给出迭代编号作为 ID,但在 HTML 中我看到它对所有元素使用第一次迭代数字值。
例如,如果我传递 2,它会生成 2 个具有相同 ID 的控件。为什么?对我来说,JS的这种行为很奇怪。你能指导一下是什么原因造成的吗?循环适用于传递给函数的次数,但它没有将正确的数字作为 ID 的一部分显示。
function CreateDependentForms(noOfControlsToCreats)
{
var itrator = 1;
var sectionFName ="<div id=Dependent"+ itrator +"FName " +"class='"field rf-field'"><label>First Name</label><input type='"text'" required='"'" placeholder='"eg. Joe'" name='"partNerfirstname'" aria-required='"true'"></div>";
for (;itrator<noOfDependents; itrator++)
{
alert(sectionFName);
$('#dependentfrequency').after(sectionFName);
}
}
创建 HTML 内容的部分位于循环之外。在循环中移动var sectionFName
声明将为元素生成唯一的 ID。
function CreateDependentForms(noOfControlsToCreats) {
for (var itrator = 1; itrator < noOfDependents; itrator++) {
var sectionFName ="<div id=Dependent"+ itrator +"FName " +"class='"field rf-field'"><label>First Name</label><input type='"text'" required='"'" placeholder='"eg. Joe'" name='"partNerfirstname'" aria-required='"true'"></div>";
$('#dependentfrequency').after(sectionFName);
}
}
function CreateDependentForms(noOfControlsToCreats)
{
var itrator = 1;
var sectionFName ;
for (;itrator<noOfDependents; itrator++)
{
sectionName = ="<div id=Dependent"+ itrator +"FName " +"class='"field rf-field'"> <label>First Name</label><input type='"text'" required='"'" placeholder='"eg. Joe'" name='"partNerfirstname'" aria-required='"true'"></div>";
alert(sectionFName);
$('#dependentfrequency').after(sectionFName);
}
}
这段代码将为您工作。由于在您提到的代码中,sectionName 被初始化一次,并且只有一次被赋予 id 1,并且没有改变。因此,您最终只有一个id。
现在,一旦执行了这一行,您最终就会一遍又一遍地使用相同的变量。我曾在PHP,Java和JS工作过,我没有看到任何例外。所以对我来说,是的,这就是它的工作原理,这是唯一的原因。
希望这有所帮助。快乐学习:)
字符串是在声明字符串时构建的。 在for
循环中,sectionFName
字符串"<div id=Dependent1 ..."
。 这是因为您已经声明了它。 在循环中递增itrator
不会更改字符串。
for (var itrator = 1;itrator<noOfDependents; itrator++)
{
var sectionFName ="<div id=Dependent"+ itrator +"FName " +"class='"field rf-field'"><label>First Name</label><input type='"text'" required='"'" placeholder='"eg. Joe'" name='"partNerfirstname'" aria-required='"true'"></div>";
alert(sectionFName);
$('#dependentfrequency').after(sectionFName);
}
相关文章:
- JavaScript:单击时相对于父级增加变量值
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 如何从特定页面中提取php变量值
- JavaScript模数未正确递增变量值
- 替换另一个变量对象中的变量值
- mandrill合并标记不接受变量值
- 将变量值从一个javascript传递到另一个javascript
- 如何将变量值附加到另一个变量
- html类名中的数字形式的Javascript变量值
- 如何在C#中获取Javascript变量值
- 如何将C#变量值传递给javascript以使用amcharts
- 正在从addEventListener中获取变量值
- 使用变量值作为'名称标识符'javascript/html
- 为什么在以下代码段中无法访问中的变量值
- 我们可以在初始化variable Angular JS时将变量值声明为未定义吗
- 在HTML/Javascript文件中获取App Inventor 2变量值
- 将变量值传递给另一个函数
- jQuery UI对话框窗体-缺少变量值
- AngularJS:根据变量值进行连接
- Javascript 字符串未获取连接的变量值