jQuery - metodo map (callback)

Descrizione

Il map( callback ) traduce un insieme di elementi nell'oggetto jQuery in un altro insieme di valori in un array jQuery che può o non può contenere elementi.

È possibile utilizzare questo metodo per creare elenchi di valori, attributi, valori css o persino eseguire trasformazioni di selettori speciali e personalizzate.

Sintassi

Ecco la semplice sintassi per utilizzare questo metodo:

selector.map( callback )

Parametri

Ecco la descrizione di tutti i parametri utilizzati da questo metodo:

  • callback - La funzione da eseguire su ogni elemento dell'insieme.

Esempio

Di seguito è riportato un semplice esempio che mostra l'uso di questo metodo:

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function(){
			
            var mappedItems = $("li").map(function (index) {
               var replacement = $("<li>").text($(this).text()).get(0);
				
               if (index == 0) {
                  // make the first item all caps
                  $(replacement).text($(replacement).text().toUpperCase());
               } else if (index == 1 || index == 3) {
                  // delete the second and fourth items
                  replacement = null;
               } else if (index == 2) {
                  // make two of the third item and add some text
                  replacement = [replacement,$("<li>").get(0)];
                  $(replacement[0]).append("<b> - A</b>");
                  $(replacement[1]).append("Extra <b> - B</b>");
               }

               // replacement will be an dom element, null, 
               // or an array of dom elements
               return replacement;
            });
				
            $("#results").append(mappedItems);
         });
      </script>
		
      <style>
         body { font-size:16px; }
         ul { float:left; margin:0 30px; color:blue; }
         #results { color:red; }
      </style>
   </head>
	
   <body>

      <ul>
         <li>First</li>
         <li>Second</li>
         <li>Third</li>
         <li>Fourth</li>
         <li>Fifth</li>
      </ul>
		
      <ul id = "results">
      </ul>
   </body>
</html>

Questo produrrà il seguente risultato:

jquery-traversing.htm