替换克隆的jquery对象中的字符串

时间:2012-07-01 06:19:52

标签: jquery string replace

在下面的脚本中,我克隆了一个新的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}

3 个答案:

答案 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) });