JQuery obtiene todos los attributes de datos de una list

Tengo una larga list generada dinámicamente, cada una con el mismo identificador de class y un atributo de datos similar al siguiente código:

<ul> <li class="list" data-id="123">One</li> <li class="list" data-id="124">Two</li> <li class="list" data-id="125">Three</li> <li class="list" data-id="126">Four</li> .....etc </ul> 

Lo que bash lograr es get todos los valores de data-id y formatearlos de la siguiente manera:

 123|124|125|126....etc 

esto se pasaría luego a una página a través de ajax y se verificaría su existencia en una database.

 var delimited_data=""; $('.list').each(function(){ delimited_data+=$(this).data('id')+"|"; }); console.log(delimited_data); 

La razón por la que hago esta pregunta es porque estoy trabajando en un sistema en vivo que despliega automáticamente elementos en las columnas de la list para diferentes usuarios después de 10 minutos. Solo necesito estar seguro de que el código va por buen path 🙂

También necesito verificar que no .list classs .list en la página (es decir, no hay forma de hacer la consulta) si los datos delimited_data estarán totalmente vacíos, y estoy seguro de que así será.

¿Hay alguna manera mejor que utilizar .each() en este caso, ya que creo que puede ser bastante lento teniendo en count que la function anterior se ejecutará cada 30 segundos.

3 Solutions collect form web for “JQuery obtiene todos los attributes de datos de una list”

Puede usar .map para devolver una matriz:

 var dataList = $(".list").map(function() { return $(this).data("id"); }).get(); console.log(dataList.join("|")); 

Demostración: http://jsfiddle.net/RPpXu/

Utilizar esta:

 var array = []; $('li.list').each(function() { array.push($(this).data('id')); }) var joined = array.join('|'); 

No es una respuesta a su pregunta, pero esto es lo que terminé en esta página en búsqueda y aunque podría ayudar a alguien más 🙂

 var arrayOfObj = $('input').map(function() { return { name : $(this).attr('name'), data : $(this).data('options'), value : $(this).val(), id : $(this).attr('id') } }).get(); console.log(arrayOfObj) 

Esto devuelve una matriz de objects que imita la input
¡Aclamaciones!

  • selector jQuery que simula: starts-with o: ends-with para search text?
  • .keypress en una label DIV?
  • Asignar manejadores de clics en bucle
  • La forma más adecuada de get esto: $ ($ (".respuesta") )
  • ¿Qué es "context" en el selector jQuery?
  • apuntando a la window primaria usando jQuery
  • ¿Por qué el selector de jquery no funciona para la label recién reemplazada?
  • ¿Cómo usar JQuery para mostrar solo los elementos secundarios de un div?
  • Treehouse jQuery Challenge
  • Seleccionar una columna (jQuery)
  • Invertir filas de tabla
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.