0

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

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

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

<div id='chart1'/>
<div id='chart2'/>

ETC

我管理的最接近的是:

<div id="'chart'@currentQuestion"/>

这当然给出了这样的 id:'chart'1

后来,当我尝试将图表附加到我创建的 div 时,以下内容不起作用:

$("#'chart'"+i).append(div); //where i is the current loop counter

如果我使用

 $("#chart"+i).append(div);

它正确地找到了元素“chart1”、“chart2”等;但我正在努力命名要匹配的 div。

任何人都可以帮忙吗?除非您知道如何解决它,否则这似乎微不足道:-)

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

<div id="'chart@currentQuestion'">CHART</div>

解决了:

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

4

2 回答 2

0

您正在使用剃刀语法,所以这里应该是这样。

// 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>');
});

这就是您在脚本中使用剃刀语法的方式

于 2012-10-22T09:41:49.787 回答
0

你没有正确关闭你的 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" />
于 2012-10-22T09:15:10.427 回答