在AJAX成功时动态生成表行

我想做的是:当用户点击发送时,我希望数据显示在

(每个字段都嵌套在自己的

)。

我已经编写了一个实际执行此操作的脚本,但系统尚未动态。

HTML:

 

JS:

 $(function() { $("#submit").click(function() { var name = $("input#name").val(); var age = $("input#age").val(); var mail = $("input#mail").val(); var dataString = [name, age, mail]; var n = dataString.length; $.ajax({ type: "POST", url: "process.php", data: dataString, success: function() { $('#results').append( $('') .append($('').append(dataString[0])) .append($('').append(dataString[1])) .append($('').append(dataString[2])) ); } }); return false; }); }) 

如您所见,我使用dataString[x]手动抓取字段,但是如何使该系统动态化

我正在考虑使用类似下面的循环,但我似乎无法使其工作:

 for(var i = 0; i < n; i++){ row += "$('').append("+dataString[i]+")"; } $('#results').append( $('') .append(row) ); 

有关如何做到这一点的任何提示? 或者你会有一个更清洁的解决方案?

这行代码:

 row += "$('').append("+dataString[i]+")"; 

它不是创建一个元素并向其附加数据,它只是连接row变量和字符串文字(包含jQuery代码)。

为什么不将row设为实际行 – 而不是包含行内容的字符串 – 然后将其附加到success回调处理程序中:

 var row = $(''); for(var i = 0; i < n; i++) { row.append($('').html(dataString[i])); } 

然后:

 $('#results').append(row); 
 var row = ''; var col = ''; for(var i=0;i'; row += ''; $('#results').append(row); 

尝试这个,它肯定会工作。

 var str =''; $.each(dataString, function(i){ str += '' + this + ''; } $('#results').append(str + '');