2012-03-15 21 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')

相关问题