2

私のhtml

<div id="sample-reminder">
    <div id="reminder_0000">
        <input type="text" name="val_0000" value="1">
    </div>
</div>

私のコード

rigaHtml = $('#sample-reminder').clone(); // i have to work on a clone of dom
rigaHtml.find('input[name^=val_]').val(99);
rigaHtml.html().replace(/0000/g, 987654321); 

最後のコマンドは、プレースホルダー '0000' を置き換えません。find() の前に replace() を移動すると、find を使用できなくなります :-(

4

4 に答える 4

2

.clone()この場合、使用する必要はありません。

var rigaHtml = $('#sample-reminder').html();
$(rigaHtml.replace(/0000/g, 987654321))
  .find('input[name^=val_]')
  .val(99)
  .appendTo('#container')

'#container'変更したHTMLを追加するノードはどこにありますか。

于 2012-10-01T08:06:32.720 に答える
1

idのプロパティ#reminder_0000とのnameプロパティを変更しようとしていると仮定してval_0000、これを試してください。

$rigaHtml = $('#sample-reminder').clone();
var $input = $("input", $rigaHtml);
var $div = $input("div", $rigaHtml);

$input.val(99).attr("name", $input.attr("name").replace(/0000/g, 987654321));
$div.attr("id", $div.attr("id").replace(/0000/g, 987654321));
于 2012-10-01T07:59:39.390 に答える
0

結果を元に戻す必要があります。

var html = rigaHtml.html().replace(/0000/g, 987654321);
rigaHtml.html(html);
于 2012-10-01T07:55:04.763 に答える
0

の戻り値で何もしていませんreplace。それは次のように書かれるべきです:

rigaHtml.html(rigaHtml.html().replace(/0000/g, 987654321)); 

それでもrigaHtml、元の要素のクローンであるため、DOM にはありません。したがって、DOM 内に戻さない限り、目に見える変更は表示されません。

于 2012-10-01T07:55:35.910 に答える