jQuery push text to array

Simplemente estoy tratando de presionar el texto de un elemento li cuando hago clic en el botón Agregar. Pero cuando hago clic en mi botón Agregar, estoy empujando todos los elementos de mi lista a la matriz. Supongo que es porque solo estoy usando una clase. ¿Cuál sería la mejor manera de evitar esto? ¡Gracias por adelantado!

HTML

 
  • Lorem 1

  • Lorem 2

jQuery

 $(document).ready(function(){ var array = Array(); $(".target").click(function() { $('p').each(function (i, e) { array.push($(e).text()); }); console.log(array); }); }); 

 $(document).ready(function(){ var array = []; $(".target").click(function() { array.push($(this).siblings('p').text()); //Replace with this and it will get the text from clicked li only. console.log(array); }); }); 

Qué tal esto:

 $(document).ready(function(){ var array = []; //Use the bracket notation instead. $(".target").click(function(e) { var p = $(this).closest('li').find('p'); array.push(p.text()); console.log(array); }); }); 

Básicamente, desea encontrar el li más cercano que encierra su .target (aquel en el que se hizo clic) y luego encontrar el párrafo contenido en ese li .

Su código de JavaScript esencialmente dice:

Cuando se hace clic en un elemento de la clase “objective”, presione CADA elemento del texto de elementos de párrafo en la matriz.

Considera reemplazar esto:

 $('p').each(function (i, e) { array.push($(e).text()); }); 

con:

 array.push($(this).previousSibling.text()); 

En su lugar, agregará el valor de texto solo del elemento de párrafo que precedió inmediatamente al botón en el que hizo clic el usuario.