2012-03-15 8 views
9

muszę stworzyć oddzielonych przecinkami wartości do ukrytego wejścia utworzonego z serii div id użytkownikadostać każde dziecko („id”) do tablicy lub ciąg

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

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

chcę użyć jQuery, ale kłopoty z funkcja

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); 
    } 

to nie jest w porządku

+0

co się z nim stało? – Colleen

+0

Wiemy, że to nie w porządku. Co * dokładnie * czy wiesz, że jest z tym nie tak? Czy są jakieś * konkretne * błędy? – Jon

+0

Sprawdź swoje oferty i nawiasy! Spoiler: minus cytat po głównym plus prawym nawiasie po cytacie id plus prawy nawias po pierwszym} –

Odpowiedz

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

Używam tego. Dziękuję za pomoc. –

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

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

Dlaczego ten wpis jest CW ?! – ThiefMaster

+0

@ThiefMaster: Wszystkie moje nowe posty są teraz CW. Po prostu lubię to w ten sposób z jakiegoś powodu. –

10

można użyć map -

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

Powyższy kod opiera się na kodzie HTML jest zmieniony -

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

Funkcja map zwróci obiekt jQuery zawierającą identyfikatory każdego div zawarte w „głównym” div. Można wywołać funkcję get(), aby przekształcić obiekt zwracany przez funkcję map do tablicy JavaScript, a następnie użyć funkcji join, aby zwrócić ciąg rozdzielany przecinkami.

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

1

Prawdopodobnie chcesz użyć children('div') nie children('id')

Powiązane problemy