2012-03-21 8 views
0

私のビューにループがあり、ループ中に値をjQueryに渡して値をdivに戻したいとします。ASP.NET MVC 3のパラメータをビューからjQueryに渡します

ビュー

@foreach (var item in Model){ 
    <p>@item.Title;</p> 
    <div id="timeDisplay" onload="test(@item.DateTime);"></div> 
} 

jQueryの

$(function() { 
    function test(var datetime){ 
     $("#timeDisplay").html(datetime); 
    } 
}); 

ロード機能が作業を行い、私が何をしないのですか?

私はデータがこのような何かの属性を使用します
+1

あなたの 'test'関数は' $(document).ready() 'の外ではアクセスできません。 – jrummell

答えて

1

移動test外:

$(function() { 
    // document ready stuff 
}); 

function test(var datetime){ 
    $("#timeDisplay").html(datetime); 
} 

onlを使用する代わりにあなたはおそらく$(document).ready()を使う方が良いでしょう。また、idがtimeDisplayの複数のdivがあることに注意してください。代わりにクラスを使用してください。

@foreach (var item in Model) { 
    <p>@item.Title</p> 
    <div class="timeDisplay" data-date="@item.DateTime"></div> 
    } 

$(function() { 
    // document ready stuff 
    $(".timeDisplay").each(function() { 
     $(this).html($(this).data("date")); 
    }); 
}); 
+0

はまだ動作しません。テスト機能は実行されません。 – Ben

+0

エラーが表示されますか?コンソールから 'test()'を実行できますか? – jrummell

1

@foreach (var item in Model){ 
    <p>@item.Title;</p> 
    <div id="timeDisplay" data-DateTime="@item.DateTime"> 
    </div> 
    } 

$(function() { //anyone know how to do this without the temp? 
    var $el = $("#timeDisplay"); 
    $el.html($el.data('DateTime')); 
}); 
1

あなたのサーバーデータの前後に引用符を必要とする:$(document).ready()

onload="test('@item.DateTime');"

+0

ダング!電話でフォーマットできません! –

+0

@Stefanありがとう! –

+0

よろしくお願いします。 – Stefan

1

例で実行しているのと同じIDを共有する複数の要素を作成しないでください。

また、あなたのJavascriptはこれ以降作成されません。あなたがここで目指しているものを知ることは素晴らしいことです。これはitemプロパティを表示するのに十分です。

@foreach (var item in Model) { 
    <p>@item.Title;</p> 
    <div class="timeDisplay">@item.DateTime</div> 
} 
+0

現在、ページが読み込まれるときのカウントダウンタイマーを表示するjs関数があります。 targetDateを生成し、init()関数が実行されます。 >> targetDate = new Date( "December 20、2012、13:00:00")。getTime()/ 1000; >> init(); 私がやろうとしているのは、ループを介してdatetimeを渡すことです。それは独自のカウントダウン時間を作成するはずです。 thx – Ben

+0

どのように私は同じIDを使用することを避けることができますか?その周りに道がありますか? – Ben

+0

CSS 'class'を使用してjQuery関数を作成し、' class'を使ってすべての要素のカウントダウンを生成することができます。彼が 'data'属性を使っているところで@jrummells answerを見てください。 – Stefan

関連する問題