在下面的脚本中,我克隆了一个新的tfoot行,并将其附加到table tbody
<script>
$('#checklist-builder .add-row').click(function(){
var new_row = $('#checklist-builder>tfoot>tr').clone();
$('#checklist-builder>tbody').append(new_row);
});
</script>
克隆行是:
<tr>
<td>${j}</td>
<td>
<input size="2" type="hidden" value="" name="WhoChecklistField[1][${j}][id]" id="WhoChecklistField_1_${j}_id"> <input size="2" maxlength="2" type="text" value="" name="WhoChecklistField[1][${j}][weight]" id="WhoChecklistField_1_${j}_weight"> </td>
<td>
<input type="text" value="" name="WhoChecklistField[1][${j}][name]" id="WhoChecklistField_1_${j}_name"> </td>
<td>
<select size="1" name="WhoChecklistField[1][${j}][type]" id="WhoChecklistField_1_${j}_type">
<option value="text">Text field</option>
<option value="select">Select field</option>
<option value="radio">Radio field</option>
<option value="checkbox">Checkbox field</option>
</select>
</td>
</tr>
现在我想用${j}
替换table size + 1
,如何在jquery克隆字符串中替换${j}
?
答案 0 :(得分:12)
new_row.html(function(i, oldHTML) {
return oldHTML.replace(/\${j}/g, 'table_size');
});
<强> DEMO 强>
答案 1 :(得分:2)
根据我自己的问题,我提出了下面的代码也可以,也许会帮助某人(完整的例子)
$j('grab_object')
.clone()
.html(function(i, oldHTML) {
return oldHTML.replace(/regular_expression/, change_found_expression_to_this);
}))
.appendTo('paste_object_here');
你应该通过更改部分代码来接收克隆和粘贴的对象。在我的情况下,我正在使用数字更改[nr]
,我的表达式如下所示
(...).replace(/\[nr\]/g, $j('#some_id').val().(...)
同样由于文档记住,使用clone()
jQuery还会复制包含id
的属性,这可能会导致DOM中进一步操作的一些问题。
答案 2 :(得分:1)
在您append
之前:
new_row.html(function(i, oldHtml){ return oldHtml.replace(/${j}/g, tSize) });