2012-03-15 8 views
9

Necesito crear un valor separado por comas para una entrada oculta creada a partir de una serie de div de Identificación delllegar a cada niño ('id') en una matriz o una cadena

<div id="main"> 
<div id="A"></div> 
<div id="B"></div> 
<div id="C"></div> 
</div> 

<input type="hidden" id="children"/> 

quiero usar jQuery, pero tiene problemas con la función

function update_input(main){ 
     var array = new Array(); 

      $('#'+main).children('id').each(function(){ 
       array.push($(this).attr('div')); 
      });   

     input_value = array.toString(); 
     $('#children').val(input_value); 
    } 

Esto no está bien

+0

lo que está mal con ella? – Colleen

+0

Sabemos que no es correcto. ¿Qué * exactamente * sabes que está mal con eso? ¿Hay algún error * específico *? – Jon

+0

¡Verifique sus cotizaciones y corchetes! Spoiler: menos la cita después del paréntesis principal más el paréntesis derecho después de la cita de id. Más el paréntesis derecho después del primero} –

Respuesta

14
$('div','#main').each(function(){ 
     array.push($(this).attr('id')); 
    }); 
+0

Estoy usando este. Gracias por la ayuda. –

2
var ids = $('#main > td').map(function(){ 
       return this.id 
      }).toArray(); 

$('#children').val(ids); 
+0

¿Por qué esta publicación CW ?! – ThiefMaster

+0

@ThiefMaster: Todas mis nuevas publicaciones ahora son CW. Simplemente me gusta así de alguna manera. –

10

Usted podría utilizar map -

​var arr = $("#main > div").map(function() {return this.id}); 
$('#children').val(arr.get().join(",")); 

El código anterior se basa en el código HTML que se cambió a -

<div id="main"> 
    <div id="A"></div> 
    <div id="B"></div> 
    <div id="C"></div> 
</div>​ 

La función map devolverá un objeto jQuery que contiene los identificadores de cada Div contenida dentro del div 'principal'. Puede llamar a la función get() para convertir el objeto devuelto por la función map en una matriz Javascript, y luego usar la función join para devolver una cadena delimitada por comas.

Demo - http://jsfiddle.net/8tZXH/1

1

Es posible que desee utilizar children('div'), no children('id')

Cuestiones relacionadas