Text1
Text2
Text3
Result should be :
[
This will work:
var p = $('#main p').map(function () {
return '"' + $(this).text() + '"';
}).get().join(',');
p = "[" + p + "]";
map() lets you iterate over each match and get a value from it, which is inserted into an array-like object. get() then returns it as a Javascript array, and .join makes the array into a string.
jQuery provides .map() for this:
var items = $('#main p').map(function () { return $(this).text(); }).get();
.map()
iterates over its elements, invoking a function on each of them and recording the return value of the function in a new array, which it returns.
You could also have solved this with a simple .each()
:
var items = [];
$('#main p').each(function (i, e) {
items.push($(e).text());
});