【问题标题】:Replace string in cloned jquery object替换克隆的 jquery 对象中的字符串
【发布时间】:2012-07-02 01:26:17
【问题描述】:

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

现在我想用table size + 1 替换${j},如何在jquery 克隆字符串中替换${j}

【问题讨论】:

    标签: jquery string replace


    【解决方案1】:

    在你之前append 做:

    new_row.html(function(i, oldHtml){ return oldHtml.replace(/${j}/g, tSize) });
    

    【讨论】:

    • 为什么要投反对票?我不知道。但我认为你的代码会失败,请参阅jsfiddle.net/P43mW/2..
    • 它不适用于 ${j},但是当我将其更改为 xxx 有效时,我想完全使用 ${j},我应该更改您的 regx 吗?
    【解决方案2】:
    new_row.html(function(i, oldHTML) {
        return oldHTML.replace(/\${j}/g, 'table_size');
    });
    

    DEMO

    【讨论】:

    • @Mohammad Ali Akbari 为什么投反对票?我可否知道?只有我的代码在这里工作。你必须在 $ 之前放一个 \
    • 如果 上也有 ${j},它不能替换它,我们如何替换 tr 上的文本?
    【解决方案3】:

    从我自己的问题中,我想出了下面的代码,它也可以工作,也许会对某人有所帮助(完整示例)

    $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 中进一步操作时出现一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 2011-03-08
      • 2014-06-30
      • 2011-05-27
      • 2021-05-23
      • 1970-01-01
      相关资源
      最近更新 更多