如何用jQuery将表格输入值追加到变量,替代中间textarea?
问题分析与解决方法
你的代码主要有几个核心问题:
- 变量作用域错误:在
each循环里重新用var content声明了局部变量,这会覆盖外部的全局content变量,导致循环结束后外部的content还是初始的空字符串。 - 不必要的jQuery对象转换:
$(content)把字符串转成了jQuery对象,和value拼接时会得到类似[object Object]<br>的无效内容,完全不是你想要的字符串拼接效果。 - 另外,
.append()是操作DOM元素的方法,不能用来拼接字符串变量,所以用它肯定无效。
修正后的代码(基础版)
直接在循环里对全局的content进行字符串拼接即可,注意不要重新声明变量:
var content = ''; $("#table .row").each(function () { // 建议给value也加上var,避免污染全局变量 var value = $(this).find('input').val() + '<br>'; content += value; }); var myfinalvariable = othervariable + 'randomtext' + content;
更简洁的写法(用.map())
可以用jQuery的map方法一次性收集所有值,再拼接成字符串,代码更简洁:
var content = $("#table .row") .map(function() { return $(this).find('input').val() + '<br>'; }) .get() // 将jQuery对象转换为普通数组 .join(''); // 把数组元素拼接成字符串 var myfinalvariable = othervariable + 'randomtext' + content;
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

