2011-07-20 11 views
0

配列のオブジェクトのリストがあると仮定し、これらの各アイテムにIDを持たせたいとします。data-id="<%= item.id%>"このデータIDをJavaScrptに渡すにはどうすればよいですかアイテムIDのアラートメッセージが表示されます。HTML5 + JavaScriptをRailsで使用する方法

答えて

0

私はあなたが求めている正確にわからないんだけど、あなたは各IDの配列と表示アラートを反復処理したい場合にはこのようなものになりますのmikeycgtoのポイント@対処するために

# assuming @items is and array of objects 
<% for item in @items %> 
    <script>alert('<%= item.id %>')</script> 
<% end %> 

をアラートのトンあなただけ一度にすべてのidので警告を持っていると思った場合、あなたができる:

<script>alert('<%= @items.collect(&:id) %>')</script> 

EDIT: だから、一緒にIDを渡すと、あなたの内部のIDを使用したい場合あなたのjsの部分的な項目、あなたはコレクションとレンダリング部分を使用することができます。

render :partial => 'item', :collection => @items 

これで、「items/_item.erb」がレンダリングされ、ローカル変数adが表示されます。 partial_name_counterの形式の名前を持つテンプレートに対して、繰り返しカウンタが自動的に使用可能になります。上記の例の場合、テンプレートはitem_counterになります。

だからあなた_item.erb部分的に、あなたがこのように項目にアクセスできます。

<div id="item_<%= #{item.id} %>" class="item"> 
    <script>document.write('this is my item id written from JS: <%= item.id %>');</script> 
</div> 

これは、クラスの項目に「item_」の形でdivのIDを持つブロックをレンダリングするだろう、とJSを書きますブロック内のIDを出してください。あなたは、あなたが必要とすることを行うためにjsを再利用することができます。

+0

に渡しますおそらくconsole.logは良いです;) – mikeycgto

+1

うん、それは警告のトンであるかもしれませんが、質問にちょうど従ってください。笑 –

+0

あまりにも多くの警告があまりにも良い – Uchenna

0

あなたが実際にデータを使用することができるようにしたい場合は、JSON

How to do Ruby object serialization using JSON

としてそれをシリアル化する必要があるそれからちょうどアラートをたくさんすることができ、可変

<script type="text/javascript"> 
    var json = <%= json_serialized_object %> 
</script>