使用jQuery操纵动态创建的表单元素而不会丢失它们的值

时间:2011-02-18 09:51:17

标签: javascript jquery

我想在动态创建的表单的复杂位上进行搜索和替换。它就像查找一个字符串的所有实例并将它们替换为另一个字符串一样简单,因为每个表格有11个实例并且只构成各种属性的一部分,所以更加复杂。

我正在使用的那种东西的例子(它是我正在搜索和替换的'001'位):

<div id="step_title:001|title">
<label for="step_title:001|title|field">
<input id="step_title:001|title|field" name="step_title:001|title|field"/>

我曾经认为这样的事情可以解决问题:

$(this).html($(this).html().replace('old string', 'new string'));

但是,由于动态添加了表单位,每次执行此操作时表单数据都会丢失。我尝试使用.clone()函数,它似乎保留了数据,但这不允许你操纵对象。我也尝试执行搜索并直接替换到包含对象,但我猜.replace()仅适用于字符串。

1 个答案:

答案 0 :(得分:0)

您可以改为更新属性吗?

$('div, label, input').each(
    function() {
        var _this = $(this);
        _this.attr('id', _this.attr('id').replace('old string', 'new string'));
        _this.attr('for', _this.attr('id').replace('old string', 'new string'));
        _this.attr('name', _this.attr('id').replace('old string', 'new string'));
    }
);

可能有点啰嗦......