0

質問のリストがあり、それらの質問のそれぞれに回答のリストがあります (1 ~ 5 の任意の整数にすることができます)。特定の「ランク」に一致するすべての回答の数を使用して、各質問のグラフを動的に作成したいと思います。つまり、「1」、「2」、「3」などのすべての回答です。

そこで、各質問の要素を作成する for ループを設定しました。この要素は、グラフのプレースホルダーとして使用されます。(余談ですが、私はフロートチャートを使用しています)。

私が抱えている問題は、プレースホルダーに動的に名前を付けようとしていることです。私が本当に欲しいのは、最終的に次のようになるものを作成することです。

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

私が管理した最も近いものはこれです:

<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 に答える