将表单元素附加到表中

时间:2016-03-31 20:38:25

标签: jquery

目前我正在做以下事情:

 var row = "<tr>";
 $("#addServiceForm input, #addServiceForm select").each(function(index){
      row += "<td><input type='text' id='someId' name='someName' value='someValue'></td>";
  });
  var row "</tr>";

 $('#someTable').append(row);

我的伪问题是行行变长。 我试图以更易读的方式做到这一点。上一个问题Here在附加到表单时帮助了元素部分,如何将一行和输入附加到表中?

$("#addServiceForm input, #addServiceForm select").each(function(index){
   var element = $('<input>',{
     id:idName,
     name:idName,
     val:thisVal
    }).addClass('verify');
 row += "<td class='verify'>"+element+"</td>";
});
$('#someTable').append(row);

不起作用。我最终得到了:

 <td>[OBJECT]</td>

根据你的回答,缩短的最佳方法是什么:

var row = "<td><input type='text' id='someIdthatisLong' name='someNamethatisLong' value='someValuethatislong' class='verify' readonly='readonly'></td>";

1 个答案:

答案 0 :(得分:0)

如果您要使用对象,则需要始终如一地使用它们,而不是将它们与字符串混合使用。

var row = $("<tr>");
$("#addServiceForm input, #addServiceForm select").each(function(index){
   var element = $('<input>',{
     id:idName,
     name:idName,
     val:thisVal,
     'class': 'verify'
    });
   row.append($("<td>").append(element));
});
$('#someTable').append(row);

但是,这不一定是最有效的方法。浏览器的HTML解析器非常高效,因此解析大型HTML字符串可能比在Javascript中创建所有单个对象并将它们连接在一起更好。