2
我需要修改div,span,select和其他元素的多個ID,類和名稱。jquery使用正則表達式更改多個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部分現在有更多的元素。我想與
'appliancetextfield'+newNum
更換包含所有名稱,類別和標識
'appliancetextfield'+num
,而不是做它的每一個元素。這可能嗎?怎麼樣?
澄清:的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));
它看起來像在正確的軌道,但正則表達式和/或背引用不工作。
:爲什麼不只是在一個循環中改變元素('newElem')id,根據頁面中沒有克隆的元素,或者甚至可以使用'.each()'。 – dreamweiver 2013-04-24 06:01:20
我試過了'var val = newElem.html(); val = val.replace(/'appliancetextfield'+ num/g,'appliancetextfield'+ newNum);'但是沒有用。不知道如何使用'each()',因爲不是每個元素都需要修改。 – rotezecke 2013-04-24 06:20:25
不,不,你做錯了,你使用基本的字符串操作函數,你應該使用'.attr()'來改變元素的** id **。 – dreamweiver 2013-04-24 06:32:48