9

在以下脚本中,我从 tfoot 中克隆了一个新行并将其附加到表 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,如何${j}在 jquery 克隆字符串中替换?

4

3 回答 3

18
new_row.html(function(i, oldHTML) {
    return oldHTML.replace(/\${j}/g, 'table_size');
});

演示

于 2012-07-01T06:24:54.573 回答
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 中进一步操作时出现一些问题。

于 2013-11-14T10:25:56.123 回答
1

在你append做之前:

new_row.html(function(i, oldHtml){ return oldHtml.replace(/${j}/g, tSize) });
于 2012-07-01T06:22:53.653 回答