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_0000name属性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 回答