Javascript 如何将多个textarea元素中的所有文本放入一个数组?
我的页面上有3个Javascript 如何将多个textarea元素中的所有文本放入一个数组?,javascript,jquery,Javascript,Jquery,我的页面上有3个textarea元素,将来可能会超过3个 我想从这些textarea字段中获取所有文本 如果我执行$('textarea').val()
textarea
元素,将来可能会超过3个
我想从这些textarea
字段中获取所有文本
如果我执行$('textarea').val()在chrome控制台中,它只返回第一个textarea
的文本
如何获取数组中所有元素的文本?jQuery getters只返回第一个匹配元素的值,您应该遍历集合,您可以使用.map()
方法,该方法通过调用.get()在幕后遍历集合并返回jQuery包装的数组
方法您可以获得实际数组
var arr = $('textarea').map(function() {
return $.trim(this.value);
}).get();
正如正确提到的,要将数组转换为字符串,可以使用方法
对这将得到一个包含所有值的数组。如果您想要一个组合字符串,您只需将结果.join()
即可。请注意$('textarea')
是一个包含DOM中所有textarea
元素的对象,但直接将.val()
方法应用于该对象只会返回该对象中第一个元素的值。这就是为什么您需要迭代对象中的所有元素,就像使用.map()
或.each()
方法一样。我在结尾没有使用get()的情况下尝试了您的答案,它似乎返回了与之相同的数组,get()的作用是什么?@sonnyhe2002现在它是一个jQuery包装的数组,可以对其调用所有jQuery方法。
var str = arr.join();
(function () {
var arr = [];
$('textarea').each(function () {
arr.push(this.value);
});
} ());