[英]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.