我需要修改div,span,select和其他元素的多个ID,类和名称。
我从表格中的最后一行克隆html,比如
var num = $('.clonedLighting').length; // num of current rows
var newNum = new Number(num + 1); // the numeric ID of the new input field being added
// create the new element via clone(), and manipulate it's ID using newNum value
var newElem = $('#inputlighting' + num).clone().prop('id', 'inputlighting' + newNum);
然后在下一步中我修改克隆的ID,如
newElem.children('td').children('label.prod_item').prop('for', 'appliancetextfield' + newNum);
newElem.children('td').children('select.prod_item').prop('id', 'appliancetextfield' + newNum).prop('name', 'appliancetextfield' + newNum).prop('value', '');
工作正常。但是,appliancetextfield部分现在有更多元素。我想替换包含
的所有名称,类和ID'appliancetextfield'+num
带
'appliancetextfield'+newNum
而不是为每个元素做这件事。这可能吗?如何?
澄清:ID,类或名称看起来像
appliancetextfield4
appliancetextfield4_title
appliancetextfield4_titleText
appliancetextfield4_msdd
并且应该变成
appliancetextfield5
appliancetextfield5_title
appliancetextfield5_titleText
appliancetextfield5_msdd
此时看起来数字只会是单个数字,但有一天可能要达到10或更高。感谢您的任何意见。
编辑: 试图实现以下建议和大量的谷歌搜索: 我现在有:
var num = $('.clonedLighting').length; // current rows
var newNum = new Number(num + 1);
$('#inputlighting' + num).clone().prop('id', function(index, id) {
return id.replace(/(appliance.*)\d\d?(.*)/g, "$1" + newNum + "$2");
}).insertAfter($('#inputlighting' + num));
它看起来像是正确的轨道,但正则表达式和/或反向引用不起作用。
答案 0 :(得分:0)
我想我明白了:
//newElem is the newly cloned object
newElem.find('[id^=appliance]').prop('id', function(index, id) {
return id.replace(/(appliance.*)\d\d?(.*)/g,"$1" +newNum+ "$2");
});
newElem.find('[for^=appliance]').prop('for', function(index, id) {
return id.replace(/(appliance.*)\d\d?(.*)/g,"$1" +newNum+ "$2");
});
newElem.find('[name^=appliance]').prop('name', function(index, id) {
return id.replace(/(appliance.*)\d\d?(.*)/g,"$1" +newNum+ "$2");
});
感谢您的帮助。