2009-03-05 25 views
2

RSJテンプレートからhtmlタグの属性値を変更することはできますか? 私はpage.replace_htmlメソッドがあることを知っていますが、私はさまざまな属性(alt、titleなど)の値が長いので、私の場合はあまり役に立ちません。 RJSのimgタグのsrc属性を変更します。 それはまったく可能ですか?RJSテンプレートからhtmlタグ属性値を変更するにはどうすればよいですか?

ありがとうございます。

答えて

3

EDIT:私の最初の試みはうまくいかなかったが、これはやっている。

update_page do |page| 
    page['image_id']['src'] = new_image_url 
end 
+0

よろしくお願いいたします。 =) –

3

Canの回答へのわずかな変更。示唆したように、

update_page do |page| 
    page['image_id']['src'] = new_image_url 
end 

はJSに変換:

$('image_id').src = new_image_url 

これは直接JS DOM変数へのアクセスを持っているいくつかの属性、多くがいないために動作します。幸いにもRJSはJSメソッドを書き換えでかなり良いです呼び出します。

update_page do |page| 
    page['image_id'].set_attribute('attrib', new_attrib_val) 
end 

はJSに変換:

$('image_id').setAttribute('attrib', new_attrib_val) 

、あなたが行くように良いことがあります。


小規模なアップデート:IEとの互換性を望む場合は、代わりにwrite_attributeを使用します。


小規模なアップデート:上記の[:src]と:attribは、静的な場合はおそらくスタイルが良いでしょう。

0

上記のコードは、page_updateの開始行と終了行を除外した場合にのみ動作します。Windows 7ではmongrel上でRailsを実行しており、[element] [attribute]自身のupdate_pageブロックの外側で正常に動作しますが、ブロック内にそれを含めてコードを破壊します。

関連する問題