Jquery获取每个div的子子div并将信息抓取到数组中

我有一些看起来像这样的HTML





我想在javascript中将每个sub_main divs信息拉出到一个数组中。 到目前为止,我将此作为我的jquery代码

 $('#main').find('.sub_main').each( function() { alert('hi'); }); 

警报只是一个应该显示“hi”两次的测试。 但这不起作用。 我也不清楚我如何将两个输入存储在一个javascript数组中。 任何帮助都会很棒! 谢谢,

 var array = $('#main input').map(function() { return $(this).val(); }).get(); 

编辑:

请注意,这将返回#main下所有input元素的值。 如果不需要所有input元素,您可以根据需要使$('#main input')选择器具体化。

 var info = $("#main .sub_main input:text").map(function() { return $(this).val(); }).get(); // get() converts resulting collection into array 

http://api.jquery.com/map/

你在等待DOM加载吗?

 $(document).ready(function(){ $('#main').find('.sub_main').each( function() { alert('hi'); }); }); 

如果你想拉出’main’div的子div,请使用

 $('.main>div') 

这将选择所有具有“main”类别的div子项。

为什么不做这样简单的事情:

 var firsts = []; var seconds = []; ("#main .sub_main input").each(function(){ var $this = $(this); if($this.is(".sub_name_first"){ firsts.push($this.val()); } else { seconds.push($this.val()); } }); 

当然,这不是最好的方式,但我只是写了1分钟,它的工作原理