2

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

ありがとうございました。

4

3 に答える 3

3

Can's answer へのわずかな変更。示唆されたように、

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 は、これらが静的である場合、おそらくより良いスタイルになります。

于 2009-03-15T18:58:40.687 に答える
0

Rails のセットアップによっては、page_update の開始行と終了行を除外した場合にのみ上記のコードが機能する場合があります。 update_page ブロックの、正常に動作しますが、ブロック内に含めるとコードが壊れます。

于 2010-07-17T00:25:23.273 に答える