По сути, вы просто закрыли (function(){});
слишком рано. Поскольку вы определили переменную array
внутри функции, она недоступна снаружи. Чтобы исправить это, вы могли только закрыть (function(){})
несколькими строками ниже. Не забудьте также запустить функцию! См. Комментарии.
(function () {
var array = [];
$('textarea').each(function () {
array.push(this.value);
});
var string = array.toString(); // add "var" in front of a new variable name
console.log(string);
})(); // move this closing paranthesis further down and add ()
// then it is an IIFE and will run
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea>111</textarea>
<textarea>222</textarea>
<textarea>333</textarea>
Вы также можете сделать что-то вроде этого (без jQuery и зачем использовать массив, если вам нужна строка)
var result = '';
[...document.querySelectorAll('textarea')].forEach(function(element){
result = result + element.innerHTML;
});
console.log(result);
<textarea>111</textarea>
<textarea>222</textarea>
<textarea>333</textarea>
или если вы хотите преобразовать pu sh в массив обратно в строку, вы можете использовать .join () (jQuery не нужен)
var result = [];
[...document.querySelectorAll('textarea')].forEach(function(element){
result.push(element.innerHTML);
});
console.log(result.join());
<textarea>111</textarea>
<textarea>222</textarea>
<textarea>333</textarea>