当对象放在jQuery中的对象中时,如何访问对象的子节点

时间:2011-07-14 09:39:56

标签: javascript jquery arrays

我将创建一个我正在处理的信息的关联数组。我有以下代码:

var controls = {};
$('#userForm').find('div.control').each(function(index, Element)
{
    if($(Element).find('input').attr('type') == "checkbox")
    {
        var attributes = {}; // Object
        attributes["type"] = "checkbox";
        attributes["name"] = $(Element).find('.controlText').text().toLowerCase().split(" ").join("_")+"_"+$(Element).find('input').attr("id");
        attributes["required"] = $(Element).find('input').hasClass('required');
        controls[index] = attributes;
        $(controls[index]).children().each(function(){
            // How do i check the controls object each value 
            alert($(this));

          });
    }
});

我想创建一个控件数组,它们将在这样的索引中分别包含每个输入的属性;

controls 
   [0] =>
       [type] = checkbox
       [name] = chk_box_1
       [required] = true
   [1] =>
       [type] = checkbox
       [name] = chk_box_2
       [required] = false

......等等。

如何填充控件数组,然后在javascript中查看元素并将它们传递给php并在那里打印数组?

1 个答案:

答案 0 :(得分:3)

使它成为一个对象数组。

var controls = [];
$('#userForm').find('div.control').each(function (index, elm) {
    if ($(elm).find('input').attr('type') == "checkbox") {
        var attributes = {}; // Object
        attributes["type"] = "checkbox";
        attributes["name"] = $(elm).find('.controlText').text().toLowerCase().split(" ").join("_") + "_" + $(elm).find('input').attr("id");
        attributes["required"] = $(elm).find('input').hasClass('required');
        controls.push(attributes);
    }
});

现在可以像这样访问它。

for(var i = 0; i < controls.length; i++){
    //alert(controls[i].name);
}