简体   繁体   中英

How to put all elements' content in array using jQuery ?

<div id="main">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</di>

Result should be :

["text1","text2","text3"]

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());
});

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM