如何在Javascript循环中动态设置id?

如何在Javascript循环中动态设置id?,javascript,flot,Javascript,Flot,我有一个问题列表,每个问题都有一个答案列表(可以是1-5之间的任意整数)。我想为每个问题动态创建一个图表,使用与特定“排名”匹配的所有答案的计数;i、 e.所有答案都是“1”、“2”、“3”等 所以我所做的是设置一个for循环,为每个问题创建一个元素;此元素用作图表的占位符。(顺便说一句,我正在使用flot图表) 我遇到的问题是尝试动态命名占位符;我真正想要的是创造一些最终看起来像这样的东西: <div id='chart1'/> <div id='chart2'/>

我有一个问题列表,每个问题都有一个答案列表(可以是1-5之间的任意整数)。我想为每个问题动态创建一个图表,使用与特定“排名”匹配的所有答案的计数;i、 e.所有答案都是“1”、“2”、“3”等

所以我所做的是设置一个for循环,为每个问题创建一个元素;此元素用作图表的占位符。(顺便说一句,我正在使用flot图表)

我遇到的问题是尝试动态命名占位符;我真正想要的是创造一些最终看起来像这样的东西:

<div id='chart1'/>
<div id='chart2'/>
如果我使用

 $("#chart"+i).append(div);
它正确地找到元素“chart1”、“chart2”等;但我正在努力命名要匹配的分区

有人能帮忙吗?除非你知道如何解决它,否则它看起来很琐碎:-)

编辑:根据要求,以下是相关的HMTL:

<div id="'chart@currentQuestion'">CHART</div>
图表
已解决:


像这样:id=“chart@(currentQuestion)”(通过同事)感谢您的努力。

您尚未正确关闭div。试试这个代码

<div id='chart1' style="border:dashed">
</div>
<br />

<div id='chart2' style="border:dotted">
</div>

<script type="text/javascript" src="jquery_library.js">
</script>
<script type="text/javascript">
 function fnc(value){

$("#chart"+value).append('1');
}
</script>
<input type="button" onclick="fnc(1)" value="for div1"/>
<input type="button" onclick="fnc(2)"value="for div2" />


函数fnc(值){ $(“#图表”+值).append('1'); }
您使用的是razor语法,下面是它的用法

// Define your counter
@{long i = 0;}

// On document ready dynamically add your items
$("document").ready(function(){
    // Create red divs starting by zero
    // after 5 divs stop creating red divs
    @for (i = 0;i<5;i++){
        @:$("#form").append('<div id="chart' + @(i) + '">Red</div>');
    }
});

// I made a button for action, you can choose other ways to invoke this function
$("#form>input").click(function(){
    // Your counter is at 4 now
    // lets change it to 2 
    @(i = 2;) // Now your counter is at 2 
    // Put a blue div into 2nd div starting by 0
    $("#chart"+@(i)).append('<div class="blue">blue</div>');
});
//定义您的计数器
@{long i=0;}
//在文档准备就绪时动态添加项目
$(“文档”).ready(函数(){
//创建以零开始的红色div
//5个div后停止创建红色div

@为了(i=0;我能给我们看一下你用来生成图表的循环吗?请不要自动关闭div。也许你所需要的就是:
?你能发布你用来生成图表的完整js吗?特别是,我不明白怎么做chart@currentQuestion'被'图表1'所取代。这个问题是关于美国的我需要能够基于javascript动态地创建ID;这里您已经硬编码了IDY的值。您认为我们只需向您提供整个代码,以便您可以复制和粘贴代码。这不是真的。这只是一个简单的想法动态创建ID。你可以用它来附加div。很好,谢谢你的想法,但它仍然不能解决问题。我已经知道如何做你提出的。我感兴趣的是学习解决问题,而不仅仅是复制粘贴。很抱歉你这么想。+1 polin的代码工作得很好,并且与问题标题相关。Thanks Berker。我也这么认为。这并不能回答问题。我需要能够控制对象的放置位置,因此我尝试使用以下方法:,而不是使用代码创建对象并将其添加到页面。毕竟,我需要知道对象应该放置在何处,如果我使用您的解决方案,这将要求我动态地将id分配给占位符…让我处于与现在相同的情况:-)@currentQuestion是计数器吗?是的。事实上,一位同事刚刚给了我一个解决方案,在变量周围使用了一个括号,如下所示:id=“chart@(currentQuestion)”,感谢您的帮助。
<div id='chart1' style="border:dashed">
</div>
<br />

<div id='chart2' style="border:dotted">
</div>

<script type="text/javascript" src="jquery_library.js">
</script>
<script type="text/javascript">
 function fnc(value){

$("#chart"+value).append('1');
}
</script>
<input type="button" onclick="fnc(1)" value="for div1"/>
<input type="button" onclick="fnc(2)"value="for div2" />
// Define your counter
@{long i = 0;}

// On document ready dynamically add your items
$("document").ready(function(){
    // Create red divs starting by zero
    // after 5 divs stop creating red divs
    @for (i = 0;i<5;i++){
        @:$("#form").append('<div id="chart' + @(i) + '">Red</div>');
    }
});

// I made a button for action, you can choose other ways to invoke this function
$("#form>input").click(function(){
    // Your counter is at 4 now
    // lets change it to 2 
    @(i = 2;) // Now your counter is at 2 
    // Put a blue div into 2nd div starting by 0
    $("#chart"+@(i)).append('<div class="blue">blue</div>');
});