2011-10-24 35 views
1

我有一些动态创建的表单,我有一个常用的提交按钮,在那个点击中,我需要遍历所有表单并获取一个特定元素的值,并且需要获得总和。我在下面给出了一些示例代码,问题是,代码正在执行4次,但Im期待循环应该执行2次。这段代码有什么问题?jQuery通过多种形式循环

<html> 
     <head> 
      <script src="http://code.jquery.com/jquery-latest.js"></script> 
      <script> 
      $("document").ready(function() { 
       $('form').each(function(index) { 
        $('form > select').each(function(selindex) { 
         alert(index + ":"+ selindex + ': ' + $(this).text()); 
        }); 
       }); 
      }); 
      </script> 
     </head> 
    <body> 
     <form name="form[1]"> 
      <input type="text"> 
      <select name="select[1]"> 
       <option value="1">One 1</option> 
       <option value="2">Two 1</option> 
      </select> 
     </form> 
     <form name="form[2]"> 
      <select name="select[2]"> 
       <option value="1">One 2</option> 
       <option value="2">Two 2</option> 
      </select> 
     </form> 
    </body> 
    </html> 
+0

是有一些原因,你不只是这些组合成一个单一的形式? – Blazemonger

+0

只需更改为:'$(this).find('select')。each(...)' –

回答

4

取出外环 - 你内心的选择,就足以从所有形式的文件中获取数据:

   $('form > select').each(function(selindex) { 
        alert(index + ":"+ selindex + ': ' + $(this).text()); 
       }); 
+0

+1通过父母子关系访问 –

+0

是的,实际上你的意思是:“对于每个表单,在所有形式与选择标记,然后执行此操作“ – dnuttle

+0

感谢您的帮助..在这种情况下,如何获取表单ID? – binoy