Javascript 如何动态创建html id属性?
我试图显示多个图表 现在,我在一个循环中有Javascript 如何动态创建html id属性?,javascript,html,asp.net-mvc,chart.js,Javascript,Html,Asp.net Mvc,Chart.js,我试图显示多个图表 现在,我在一个循环中有和文档。getElementById(“饼图”)将只返回具有该id的第一个元素。如何动态创建html属性 <table class="table"> <tr> <th> Questions </th>
和文档。getElementById(“饼图”)
将只返回具有该id的第一个元素。如何动态创建html属性
<table class="table">
<tr>
<th>
Questions
</th>
</tr>
@foreach (var question in (List<Testv3.Models.MyViewModel>)ViewData["questionlist"])
{
<tr>
<td>
@question.Question
<br />
<div class="chart">
<canvas id="pie-chart"></canvas>
</div>
</td>
</tr>
}
</table>
我不完全确定您使用什么来呈现HTML,因为您的代码在我看来不像纯HTML。但是,答案保持不变,您可以使用循环的索引作为id的一部分,使其唯一。大概是这样的:
<canvas id="pie-char-@id></canvas>
请参见
HTML Id在整个HTML实例中必须是唯一的。使用“类”而不是“id”
Id是且从未被设计为可多次使用。Id被设计为唯一标识符。这是什么@foreach
语法?看起来不像是纯js+html。它不是。它是ASP.NET。您不应该为此使用id
属性。使用类名和相对选择器。例如,您可以使用jquery获得第二个类名,如var xx=$('.yourclassName').eq(1)代码>MyViewModel类的结构是什么?您好,我这样做了,现在ID是动态添加的,但是脚本部分呢?如何重写document.getElementById(“饼图”)
?这是什么意思?你的问题我不清楚,但如果这解决了你的问题,请考虑接受它作为一个答案。试着问一些简单明了的问题。HTML5画布、JavaScript、ASP.NET,不清楚您对哪一部分有问题。尝试缩小问题范围(首先确保您知道ASP.NET指令是如何工作的,并从那里着手)。
<canvas id="pie-char-@id></canvas>