javascript - 构造对象数组

标签 javascript jquery

我需要提交一个集合(集合、列表、数组),其中包含以下对象:

id、电话号码、电话类型

我有一堆 div,这是一些 HTML 示例:

<div id="f9" class="facilityBox">
    <div style="float:left;">
        <label>BRANCH</label>
    </div>
    <div style="float:right;"> <a href="#" onclick="return Location.submitUpdateFacility(9)'">Save changes</a> 
    </div>
    <div class="phoneSet">
        <input type="text" value="787-788-1111" class="phones" name="number" />
        <select class="phoneType" name="type">
            <option selected="selected" value="PHONE">Phone</option>
            <option value="FAX">Fax</option>
        </select>
        <input type="hidden" value="6" class="phoneId" name="id" />
    </div>
    <div class="phoneSet">
        <input type="text" value="787-795-4095" class="phones" name="number" />
        <select class="phoneType" name="type">
            <option value="PHONE">Phone</option>
            <option selected="selected" value="FAX">Fax</option>
        </select>
        <input type="hidden" value="106" class="phoneId" name="id" />
    </div>
</div>

该 div 的 id 将为 f+identifier,因此现在为 f9

到目前为止我拥有的js是:

Location.submitUpdateFacility = function (facilityId) {
    $("#updateFacility input[name=index]").val(facilityId);
    var id = facilityId;
    var phones;
    $("#" + id + " .phoneSet").each(function () {
        phones += {
            id: $(".phoneId input[name=id]").val(),
            phoneNumber: $(".phones input[name=number]").val(),
            phoneType: $(".phoneType select[name=type]").selected().val()
        };
    });    
};

我的问题是在 Firebug/Chrome 控制台调试时,它不会进入循环,因此不会创建任何数组。我做错了什么?

最佳答案

问题似乎是您将“9”作为函数参数传递,然后将其转换为 jquery 选择器,如 "#"+ id + ".phoneSet"。这生成的 "#9 .phoneSet" 是不正确的。

您应该使用"#f"+ id + ".phoneSet"

还应该注意的是,您使用的其他选择器(例如“.phoneId input[name=id]”)可能也需要更正才能完全按照您的预期工作。

关于javascript - 构造对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838119/

相关文章:

javascript - 获取显示窗口的最后一个表格 tr 和 div

javascript - focus() 在 IE 9 中有效,但在 chrome、firefox 中无效

javascript - 使用数据属性对元素进行升序和降序排序

javascript - 添加 CSS 类和子级数量的性能

jquery - 在其他 div 的滚动上修复容器 div

javascript - 当我多次运行相同的函数时,我得到了 setInterval 的多个实例?

javascript - 使用静态值获取 AngularJS 中 ng-change 的下拉值

javascript - jQuery - 在所有 anchor 链接前放置一个自定义目录

javascript - 表格发送不再起作用

javascript - 使用javascript删除点击时的链接格式