如何循环通过表单jQuery的所有元素

我只是想知道一个表单的所有子元素循环的最佳方法是什么?
我的表单包含输入和选择元素。

现在我有:

success: function(data) {
                $.each(data.details, function(datakey, datavalue) {
                    $('#new_user_form > input').each(function(key, value) {
                        if($(this).attr('id') == datakey) {
                            $(this).val(datavalue);
                        }
                    });
                });
            }

这只能循环通过表单的输入元素,我也想包括select元素:

我努力了:

$('#new_user_form > input, #new_user_form > select').each(function(key, value) {

但这不行。有人知道为什么会发生这种情况吗?
谢谢!

最佳答案
从jQuery页面关于:input selector:

Because :input is a jQuery extension and not part of the CSS specification, queries using :input cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. To achieve the best performance when using :input to select elements, first select the elements using a pure CSS selector, then use .filter(“:input”).

这是最好的选择。

$('#new_user_form *').filter(':input').each(function(){
    //your code here
});

转载注明原文:如何循环通过表单jQuery的所有元素 - 代码日志