0

我目前正在尝试替换 HTML 中出现的数字 999,如下所示。我添加了第三行,它破坏了脚本。

var new_id = uniqid(),
    new_field_html = repeater.find('> table > tbody > tr.row-clone').html()
                .replace(/(=["]*[\w-\[\]]*?)(\[999\])/g, '$1[' + new_id + ']');
    new_field_html = new_field_html.('div.checkbox_container').html()
                .replace('1000', new_id);
    new_field = $('<tr class="row"></tr>').append( new_field_html );

我试图替换的变量 1000 出现在许多地方,例如元素的 ID<li>onclickJavascript 元素。

最终解决方案

上面的代码现在已更改如下:

var new_id = uniqid();
var new_field_html = repeater.find('> table > tbody > tr.row-clone')
                     .html().replace(/(=["]*[\w-\[\]]*?)(\[999\])/g, 
                     '$1[' + new_id + ']').replace(/1000/g, new_id)
                     .replace(/999/g, new_id);
new_field = $('<tr class="row"></tr>').append( new_field_html );
4

1 回答 1

1

new_html_field 变量不是 jQuery 对象,您不能在其上使用 jQuery 方法。你可以通过做它使它成为一个 jquery 对象$(new_field_html)

第二个问题在于这一点:

new_field_html.('div.checkbox_container')

您可能打算使用

new_field_html.find('div.checkbox_container')

把它放在一起:

new_field_html = $(new_field_html)
                     .find('div.checkbox_container')
                     .html().replace('1000', new_id);
于 2012-09-21T09:55:27.393 回答