0

我有一个复杂的问题要问,到目前为止,我的 Google-Fu 显然太弱了,无法解决这个问题。

我正在构建一种形式,它应该遍历数组中的一堆名称,将它们全部呈现以供选择,并且:

  • 将所选名称放入一组表单输入(具体为文本);
  • 动态生成一堆具有更多相同文本输入的 div;
  • 其余名称放入那些新 div

我已经让其中的前两个工作得很好,混合了 JQuery 和常规 Javascript。但是我遇到的问题发生在最后一步,那里。

这是我正在做的示例行:

var lname = '<p>Last name: <input type=\'text\' class=\'inputbox\' value=lastNames[i] /></p>';
...
...
$('.others').append(...,lname,...);

这是在一个for (i=0; i<lastNames.length; i++)循环内,因此计划是为数组中的每个名称创建一个 div 和其中的输入。这已经奏效了。问题是当我加载页面并选择一个名称时,会出现 3 个新的 div ......并且每个框内的文本是,例如,lastNames[i] 而不是 Smith。

我在这里在语法上缺少什么?还是比我想象的更复杂?

4

2 回答 2

0

现在你所做的就是设置一个字符串。您需要将 lastNames 变量连接到字符串以获得所需的结果。

var lname = '<p>Last name: <input type=\'text\' class=\'inputbox\' value=\'' + lastNames[i] + '\'></p>';
于 2012-07-24T15:33:27.850 回答
0

我建议您查看jQuery 模板,此解决方案非常适合您的问题。

编辑:基本上你只需设置一个准备好的模板,然后输入 {{each}} 条件格式,它会自动创建你拥有的列表,在 js 中没有任何 for 循环。

于 2012-07-24T15:46:25.593 回答