jQuery 根据公式更改所有后代 DOM ID



我正在使用jQuery克隆一个DOM元素,这是一个有许多后代的div。在将克隆的div插入 DOM 之前,我需要更改具有 DOM 的后代的id属性。我可以对我已经知道id的元素执行此操作,如下所示(假设newElem是我在预插入阶段克隆的元素):

newElem.find('#question_0_0').attr('id', 'question_' + num1 + '_' + num2);

我的问题是正在克隆的div的一部分是以编程方式生成的。本节中有许多(数十个)div。在 DOM 插入之前,我需要修改克隆div中生成的id末尾的数字,但在加载页面之前我不知道每个 id 的开头是什么。

我怎样才能写一些东西来有效地捕获所有以_0_0结尾的元素id(div 的第一部分未知)并将这些ids 更改为 ~whatever~_+num1_num2?我知道我可以使用通配符来捕获所有以_0_0结尾的元素,但我不知道如何在重写 id 时重用"捕获"的通配符部分。

$('[id$=_0_0]').prop('id', function(){
var x = $(this).prop('id').split('_')[0]; //part before _0_0
return x +'_'+ num1 + '_' + num2;
});
$('[id$="_0_0"]').prop('id', function(index, currentID) {
return 'question_' + num1 + '_' + index;
}) 

最新更新