jQuery:使用for循环

时间:2016-03-21 09:04:46

标签: javascript jquery forms

我有一个jQuery函数,它接收div元素和json数组的id

function FormBuilder(selector,myList){
    for (var i = 0 ; i < myList.length ; i++) {
        var rowHash = myList[i];
        if(rowHash['id'] > 0 ){
            $(selector).append('<form id="DialerInfo">');
            for (var key in rowHash) {
                $(selector).append(key +': <input type="text" name="' + key + '" value="' + rowHash[key] + '"><br/>');
            }
            $(selector).append('</form>');
        }
    }
}

我希望这可以构建一个正确的表单,即所有输入都应该在<form></form>标记之间。但我收到了完全不同的东西:
首先去 <form id="DialerInfo"></form> 然后在所有输入字段下面。为什么它们不在表格标签之外? jQuery会自动关闭所有标签吗?那么如何防止这种行为呢?

2 个答案:

答案 0 :(得分:3)

使用jQuery创建DOM不像字符串连接那样工作

您可以创建表单并将所有元素附加到其中

function FormBuilder(selector, myList) {
  var $form = $('<form id="DialerInfo"></form>').appendTo(selector);
  for (var i = 0; i < myList.length; i++) {
    var rowHash = myList[i];
    if (rowHash['id'] > 0) {
      for (var key in rowHash) {
        $form.append(key + ': <input type="text" name="' + key + '" value="' + rowHash[key] + '"><br/>');
      }
    }
  }
}

答案 1 :(得分:1)

//使用

etc...

//它是一个jquery looper,它接受数组和json值并兼容所有浏览器而不是for循环