RSJ テンプレートから html タグの属性値を変更することはできますか? page.replace_html メソッドがあることは知っていますが、さまざまな属性 (alt、画像のタイトルなど) の値が長いため、私の場合はあまり役に立ちません。私が欲しいのは、RJS の img タグの src 属性を変更することです。それはまったく可能ですか?
ありがとうございました。
RSJ テンプレートから html タグの属性値を変更することはできますか? page.replace_html メソッドがあることは知っていますが、さまざまな属性 (alt、画像のタイトルなど) の値が長いため、私の場合はあまり役に立ちません。私が欲しいのは、RJS の img タグの src 属性を変更することです。それはまったく可能ですか?
ありがとうございました。
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 は、これらが静的である場合、おそらくより良いスタイルになります。
Rails のセットアップによっては、page_update の開始行と終了行を除外した場合にのみ上記のコードが機能する場合があります。 update_page ブロックの、正常に動作しますが、ブロック内に含めるとコードが壊れます。