目前我正在做以下事情:
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>";
答案 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中创建所有单个对象并将它们连接在一起更好。