![](/img/trans.png)
[英]How to add an event to each of the dynamically generated element and access data from json in JAVASCRIPT only
[英]access each element in a data set from javascript
我想从javascript访问数据集中的每个元素。 我想在我的JavaScript中执行以下操作。
for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
var data = @Model.saVM.mapDetails;
alert(data[i]);
}
但是我不断收到这个错误
未终止的模板文字
我尝试过的其他东西..
for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
var data = @Model.saVM.mapDetails.ElementAt(i);
}
和
for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
var data = @Model.saVM.mapDetails.ElementAt(@:i);
}
这就是为什么我需要这样做
我有一个MVC应用程序,它将Model中的数据绑定到html表中。 行和列的数量是可变的,具体取决于模型中的数据。
public class StudentAssessmentViewModel
{
public StudentAssessmentViewModel() { }
public List<ShortResult> results { get; set; }
public List<ShortStudent> students {get; set;}
public List<MapDetail> mapDetails { get; set; }
public List<ResultType> resultTypes { get; set; }
public List<ShortResult> calculatedResults { get; set; }
public List<Mean> means { get; set; }
}
现在在此表中,当我创建一个td时,我检查Model.results(与当前学生(在行中)和当前Header(在列中)匹配)中是否存在要放入当前td中的值和颜色,如果是,则放置值和颜色,否则向前移动,即创建下一个td。
然后,我将此表转换为Kendo网格,该网格保留了td值,但删除了所有颜色。
所以现在我必须分别解析结果列表,并再次为kendogrid中的每个单元格分配颜色。
我举个简单的例子,希望对您有所帮助
视图
@model IEnumerable<JqueryAjaxClientProject.Models.Details>
@{
Layout = null;
}
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>modalPassTOjavascirpt</title>
</head>
<body>
<div>
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function () {
var model = '@Html.Raw(Json.Encode(Model)))'
console.log(model)
if (model != null) {
//loop over the model
}
});
</script>
</body>
控制器:
public List<Details> getCollection () {
List<Details> obe = new List<Details>();
for (int i = 0; i < 10; i++)
{
Details obj = new Details();
obj.Id = 1;
obj.name = "nae";
obe.Add(obj);
}
return obe;
}
public ActionResult modalPassTOjavascirpt() {
var get = getCollection();
return View(get);
}
更新
JS /脚本
var model = '@Html.Raw(Json.Encode(Model))'
// console.log(model)
if (model != null) {
$.each(JSON.parse(model), function (i, data) {
var row = data;
console.log(row);
});
}
});
要循环播放,您需要执行以下操作:
<script>
var model = @Html.Raw(Json.Encode(@Model.saVM.mapDetails));
$(model).each(function (index, item) {
console.log(item.MapId);
console.log(item.MapName});
</script>
假设您在mapDetails中具有MapId和MapName属性。 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.