当前位置:  开发笔记 > 编程语言 > 正文

循环遍历jQuery中的元素

如何解决《循环遍历jQuery中的元素》经验,为你挑选了3个好方法。

我想循环遍历HTML表单的元素,并将字段的值存储在对象中.但是,以下代码不起作用:

function config() {
    $("#frmMain").children().map(function() {
        var child = $("this");
        if (child.is(":checkbox"))
            this[child.attr("name")] = child.attr("checked");
        if (child.is(":radio, checked"))
            this[child.attr("name")] = child.val();
        if (child.is(":text"))
            this[child.attr("name")] = child.val();
        return null;
    });

以下都没有(受jobscry答案的启发):

function config() {
    $("#frmMain").children().each(function() {
        var child = $("this");
        alert(child.length);
        if (child.is(":checkbox")) {
            this[child.attr("name")] = child.attr("checked");
        }
        if (child.is(":radio, checked"))
            this[child.attr("name")] = child.val();
        if (child.is(":text"))
            this[child.attr("name")] = child.val();
    });
}

警报始终显示child.length == 0.手动选择元素有效:

    
>>> $("#frmMain").children()
Object length=42
>>> $("#frmMain").children().filter(":checkbox")
Object length=3

有关如何正确执行循环的任何提示?



1> imjoevasquez..:

不认为你需要引用这个:

var child = $("this");

尝试:

var child = $(this);



2> imjoevasquez..:

jQuery具有很好的循环一组元素的功能: .each()

$('#formId').children().each(
    function(){
        //access to form element via $(this)
    }
);



3> Hugoware..:

根据您对每个孩子的需求(如果您希望通过AJAX将其发布到某个地方),您可以...

$("#formID").serialize()

它会自动为您创建一个包含所有值的字符串.

至于循环对象,你也可以这样做.

$.each($("input, select, textarea"), function(i,v) {
    var theTag = v.tagName;
    var theElement = $(v);
    var theValue = theElement.val();
});

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有