jQuery grep没有在对象数组上工作但是for循环没有

时间:2014-02-12 20:32:25

标签: javascript jquery grep

我在这里关注本教程:http://ddmvc4.codeplex.com/用于knockout.js。这是我第一次使用javascript,但我想我知道到目前为止我在做什么。

我有一个简单的对象数组:

var DummyCompetition = [
    {
        "Id": 1,
        "Sport": 'Powerlifting',
        "Title": 'Íslandsmeistaramót í klassískum kraftlyftingum',
        "Country": 'Iceland',
        "DateStart": new Date(2014, 2, 8),
        "DateEnd": new Date(2014, 2, 8)
    },
    {
        "Id": 2,
        "Sport": 'Powerlifting',
        "Title": 'Íslandsmeistaramót í kraftlyftingum',
        "Country": 'Iceland',
        "DateStart": new Date(2014, 4, 8),
        "DateEnd": new Date(2014, 4, 8)
    }
]

我尝试在像这样的函数中过滤id

var currentCompetition = $.grep(DummyCompetition, function (c) {
        return c.Id == id;
    });

currentCompetition = new Competition(currentCompetition[0]);

其中id来自网址var id = url.substring(url.lastIndexOf('/') + 1);

如果我运行我的页面,javascript将无法加载,但如果我使用for循环过滤数组,一切正常。

for (var i = 0; i < DummyCompetition.length; i++)
{
    if (DummyCompetition[i].Id == id)
    {
        var currentCompetition = new Competition(DummyCompetition[i]);
        break
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。 Visual Studio将@Scripts.Render("~/bundles/jquery")视图的_Layout.cshtml行放在@RenderBody()行下面,因此它不会为我正在使用jQuery的视图加载它。

将其移至@Scripts.Render("~/bundles/modernizr")修复它的顶部。