2012-03-15 56 views
9

我需要從一系列創建一個隱藏的輸入創建一個逗號分隔值DIV ID的得到每個孩子(「ID」)爲數組或字符串

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

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

我想使用jQuery的,但遇到問題功能

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

這是不對的

+0

這有什麼錯呢? – Colleen 2012-03-15 22:49:54

+0

我們知道這是不對的。你究竟知道什麼是錯誤的?是否有任何*特定*錯誤? – Jon 2012-03-15 22:50:35

+0

檢查你的報價和括號!擾流板:減去主引號後的右引號加上右引號後的id引號加上右引號後的前一個} – 2012-03-15 22:53:08

回答

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

我正在使用這一個。感謝您的幫助。 – 2012-03-15 23:21:52

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

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

這篇文章爲什麼是CW? – ThiefMaster 2012-03-15 23:02:28

+0

@ThiefMaster:我所有的新帖都是CW。出於某種原因,我只是喜歡這種方式。 – 2012-03-15 23:13:27

10

你可以使用map -

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

上面的代碼依賴於你的HTML被改變到 -

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

map函數將返回包含每個的ID DIV包含的「主」 DIV內的jQuery對象。您可以調用get()函數將map函數返回的對象轉換爲Javascript數組,然後使用join函數返回逗號分隔的字符串。

演示 - http://jsfiddle.net/8tZXH/1

1

你可能想使用children('div'),不children('id')

相關問題