我是正则表达式的新手,由于所涉及的特殊字符而无法正确选择/替换这些字符串。
给出这样的表单元素:
<select id="referralForm_currentReferredProducts_1__soldProductId" class="autoWidth soldProductSelect" name="currentReferredProducts[1].soldProductId">
如何选择id和name属性并递增它们?表单元素作为HTML片段附加到表单中,并且在将它们附加到DOM之前我无法实现它们。
谢谢!
更新
我尝试使用regexpal来测试不同的表达式,这个正确选择下划线:
\_[0-9]+\_
它实际上并没有替换任何东西..这是我的代码:
$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
$(this).attr('id').replace(/\_[0-9]+\_/, '_'+ replaceIndex +'_');
});
答案 0 :(得分:1)
我能够弄清楚..
$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
var newVal = $(this).attr('id').replace(/\_[0-9]+\_/g, '_'+ replaceIndex +'_');
$(this).attr('id', newVal);
});
我没有意识到,replace()返回一个值,而不是直接设置一些东西。返回一个值后,可以将其设置为表单元素的新ID。
答案 1 :(得分:0)
试试这个:
$('select').attr('id','new_id').attr('name','new_name');