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!

  • mejores prácticas de JavaScript y documentos listos
  • JS / jQuery devuelve TH de TD relacionado, ¿es posible?
  • Aplicando class a cada 3º elemento de la list
  • ¿Cuál es la diferencia entre $ ('. classname') y $ .find ('. classname')
  • Selectores de colon jQuery
  • En jQuery o JavaScript, select el elemento secundario junto al padre
  • Compruebe si existe una opción de selección según el text en jQuery 1.7
  • Jquery: selector para un evento en un elemento pero no en sus hijos?
  • Jquery hovercard
  • Diferencia entre los selectores E> F y E + F?
  • Seleccionar elemento basado en text
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.