部分视图中的div上的jQuery.each总是返回1

时间:2016-05-09 07:58:43

标签: javascript jquery html css asp.net-mvc

在我的MVC索引页面中,对于viewmodel中的每个元素,它通过局部视图呈现。

然后我需要在每个部分视图上运行一个小脚本,并尝试使用jQuery.Each()但是,我似乎无法进行迭代,因为$get始终返回1,而不是$get中的实际元素数。

Index.cshtml

@model IEnumerable<ViewModels.DummyVM>

@{
    ViewBag.Title = "index";
}

<h2>index</h2>

<div>
    @for (int i = 1; i <= 10; i++)
    {
        @Html.Partial("pv", i);
    }
</div>



@section Scripts
{
    <script type="text/javascript">
        $(function () {
            alert($("#LogEntry").length);
        })
    </script>
}

PV.cshtml

@model int

<div id="LogEntry">
    Log Entry : @(Model)
</div>

对于上面的简化测试,一旦页面有 .ready(),然后遍历 并转储到控制台,但我只得到{{1} }

1 个答案:

答案 0 :(得分:1)

id在相同的文档使用类中应该是唯一的:

@model int

<div class="LogEntry">
    Log Entry : @(Model)
</div>

然后在JS代码中使用类选择器.

$(function () {
   alert($(".LogEntry").length);
})

如果您无法修改PV.cshtml页面,可以使用:

$(function () {
   alert($("[id='LogEntry']").length);
})

希望这有帮助。