迭代jquery中的嵌套表单元素

jan*_*jan 4 each jquery loops function

我很抱歉,如果这已被张贴,我一直在寻找无济于事..

我只想知道如何在jquery中循环嵌套表单'elements'(元素不仅是输入标签之类的严格表单元素,还包括其他html元素).目前我有这段代码来做到这一点:

$('#'+arguments[i].formid).children().each(function(){ 
    var child = $(this);
    alert(child.attr('id'));
    if(child.is(":input")) { alert(child.attr('id'));
     if(child.attr('id')!='') eval("p."+child.attr('id')+"='"+child.attr('value')+"'"); 
    }

       if(child.is(":textarea")) {
     if(child.attr('id')!='')  eval("p."+child.attr('id')+"='"+child.attr('value')+"'"); 
    }
   });
Run Code Online (Sandbox Code Playgroud)

当我的表单包含其他元素时,它不起作用:

<form>
    <div id='tabs'>
        <ul>...</ul>
        <div id='tab-1'>
               <input type='text' id='fname' />
               <textarea id='desc' ></textarea>
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

请帮忙...

tva*_*son 8

您可以使用contents()(并根据需要过滤掉文本节点)或find('*')来获取所有元素,但我不喜欢使用通配符.

 $('form').contents()
          .filter( function() { return this.nodeType == 1; } )
          .each(...);
Run Code Online (Sandbox Code Playgroud)

要么

 $('form').find('*')
          .each(...);
Run Code Online (Sandbox Code Playgroud)