【问题标题】:Use variables in loop which have html elements using javaScript在循环中使用具有使用 javaScript 的 html 元素的变量
【发布时间】:2016-10-04 15:58:47
【问题描述】:

我正在创建有 2 个 div 的表单,每个 div 有 1 个标签和 1 个文本框。我如何在 for 循环中使用创建的标签和文本框变量。指导我。

标签和文本框

var lbl1 = document.createElement(Label);
lbl1.innerHTML = "First Name";


var lbl2 = document.createElement(Label);
lbl2.innerHTML = "Last Name";


var elm1 = document.createElement(InputElement);
elm1.setAttribute("type", "text");


var elm2 = document.createElement(InputElement);
elm2.setAttribute("type", "text");

var signUpForm = document.createElement("form");
signUpForm.setAttribute("id", "signUpForm");

document.body.appendChild(signUpForm);
var getSignUpForm = document.getElementById('signUpForm');
for(var i = 1 ; i<= 2;i++)
{
    Div = document.createElement("div");
    for(var j=1;j<2;j++)
    {
        Div.appendChild("lbl"+j);
        Div.appendChild("elm"+j);
        getSignUpForm.appendChild(Div);
    }
}

"lbl"+j 作为字符串而不是元素

【问题讨论】:

    标签: javascript jquery html css frontend


    【解决方案1】:

    使用对象来保存变量并使用方括号表示obj["lbl" + j]。像下面这样。

    var Label = 'label';
    var InputElement = 'input';
    var obj = {};
    obj.lbl1 = document.createElement(Label);
    obj.lbl1.innerHTML = "First Name";
    
    obj.lbl2 = document.createElement(Label);
    obj.lbl2.innerHTML = "Last Name";
    
    obj.elm1 = document.createElement(InputElement);
    obj.elm1.setAttribute("type", "text");
    
    obj.elm2 = document.createElement(InputElement);
    obj.elm2.setAttribute("type", "text");
    
    var signUpForm = document.createElement("form");
    signUpForm.setAttribute("id", "signUpForm");
    
    document.body.appendChild(signUpForm);
    var getSignUpForm = document.getElementById('signUpForm');
    for (var i = 1; i <= 2; i++) {
      Div = document.createElement("div");
      for (var j = 1; j <= 2; j++) {
        Div.appendChild(obj["lbl" + j]);
        Div.appendChild(obj["elm" + j]);
      }
      getSignUpForm.appendChild(Div);
    }

    【讨论】:

    • 感谢您的回复,但它无法通过异常工作 -->“Uncaught SyntaxError: Unexpected token 。”在这一行“obj.lbl1 = document.createElement(Label);”
    • @Rajith R Krishnan 在这一行 --> var obj.lbl1 = document.createElement(Label);
    • @shujaatali 你为变量LabelInputElement定义了值吗?
    • 或尝试使用document.createElement('label');document.createElement('input');
    • @Rajith R Krishnan 它的工作原理,这是我的错误 thaks 再次
    猜你喜欢
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多