javascript - 多个选择列表值在 JavaScript 中交互额外的时间

标签 javascript jquery html

我有一个 ID 为“genres”的多选列表项。在我的代码中,我获取“流派”的值,将其拆分,然后迭代并将每个值添加到另一个数组中。但由于某种原因,它添加了一个额外的条目。这是我的代码:

if ($("#genres").val()!=null) {
    var genres = $("#genres").val().toString().split(",");
    for (var i in genres) {
        model.TitleGenres.push({ GenreId: genres[i] });
    }
}

变量 model.TitleGenres 初始化为 [];

当我在 Firebug 中调试它时,我得到的值是:

genres: [ "6", "1770" ]

在循环结束时,我得到:

model.TitleGenres: [Object { GenreId="6"}, Object { GenreId="1770"}, Object { GenreId=function()}]

我不知道为什么有一个带有 GenreId=function() 的额外条目,有人可以解释为什么会这样以及如何消除它吗?

最佳答案

不要使用 for in 迭代 JS 中的(数字索引)数组.

使用for (var i = 0, len = array.length; i < len; i++) { ... }

关于javascript - 多个选择列表值在 JavaScript 中交互额外的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590993/

相关文章:

javascript - 使用 require 在 JavaScript 中访问匿名函数之外的全局变量

javascript - jQuery .slide 和 .slideUp。没开

javascript - 如何使用 Angular js 制作搜索类型下拉菜单?

html - CSS使用div模拟表格

html - jQuery Mobile 添加自定义图标到列表菜单

javascript - 使用 ng-hide 不显示 Angular 模板

javascript - 在分区之间使用 css 创建子链接

javascript - 无法读取 CKEditor ASP.NET 的 null 属性 'unselectable'

javascript - nivo-slider 前面的图像被剪切

javascript - 手机定时触摸事件