2

HTML コンテンツの一部を jquery に置き換える必要があります。

original_string = '<option value=\"\"><\/option>\n'
replacing_string = '<option value=""></option> <option value="11">2012/05/09</option> <option value="6">2012/07/03</option> '
$('#id').html().replace(original_string, replacing_string);

問題は、元の文字列と置換文字列の両方に多数のエスケープ文字があり、html().replace実行できないことです。文字列をエスケープ文字に置き換える方法は? ありがとう。

基本的に、ページに空の選択オプションを動的に追加しています。ユーザー入力に基づいて、選択オプションをコンテンツに挿入し、画面にレンダリングする必要があります。html 操作は、レンダリングの前に行われます。

更新: html コンテンツ (申し訳ありませんが、大量です)

<div id="invoice_against_lease" style="display: none;">
<a onclick="add_nest_fields(this, "invoice_items", "<div class=\"fields\">\n<div class=\"input select optional\"><label class=\"select optional\" for=\"invoice_invoice_items_attributes_new_invoice_items_lease_usage_record_id\">Record#:&lt;\/label><select class=\"select optional\" id=\"invoice_invoice_items_attributes_new_invoice_items_lease_usage_record_id\" name=\"invoice[invoice_items_attributes][new_invoice_items][lease_usage_record_id]\"><option value=\"\"><\/option>\n<\/select><\/div>\n<input id=\"invoice_invoice_items_attributes_new_invoice_items__destroy\" name=\"invoice[invoice_items_attributes][new_invoice_items][_destroy]\" type=\"hidden\" value=\"false\" /><a href=\"#\" onclick=\"remove_nest_fields(this); return false;\">Delete<\/a>\n<\/div>\n"); return false;" href="#">Add Record</a>
</div>
4

1 に答える 1

4

$('#id')があなたへの参照である場合<select...、すべてのオプションを単純に置き換えることができるはずです$('#id').html(replacing_string);

編集:

が親 div の ID である場合$('#id')、コードはわずかに変更されるだけです。

$('#id select').html(replacing_string);

(もちろん、そのdivに複数の選択がない限り、正しいセレクターを支援できるように、より詳細を提供する必要があります...)

于 2012-07-26T19:33:13.287 に答える