jQuery根据公式更改所有子代DOM ID
我正在用jQuery克隆一个DOM元素,jQuery是一个具有许多子体的jQuery根据公式更改所有子代DOM ID,jquery,jquery-selectors,Jquery,Jquery Selectors,我正在用jQuery克隆一个DOM元素,jQuery是一个具有许多子体的div。在将克隆的div插入DOM之前,我需要更改具有一个的子体的id属性。我可以对我知道的id的元素执行以下操作(假设newElem是我在插入前阶段克隆的元素): 我的问题是要克隆的div的一部分是通过编程生成的。这一部分有许多(几十个)div。在插入DOM之前,我需要修改克隆的div中生成的ids末尾的数字,但在加载页面之前,我不知道每个id的开头是什么 我如何编写一些东西来有效地捕获以\u 0\u 0结尾的ids的所有
div
。在将克隆的div
插入DOM之前,我需要更改具有一个的子体的id
属性。我可以对我知道的id
的元素执行以下操作(假设newElem
是我在插入前阶段克隆的元素):
我的问题是要克隆的div
的一部分是通过编程生成的。这一部分有许多(几十个)div。在插入DOM之前,我需要修改克隆的div
中生成的id
s末尾的数字,但在加载页面之前,我不知道每个id的开头是什么
我如何编写一些东西来有效地捕获以
\u 0\u 0
结尾的id
s的所有元素(div的第一部分未知),并将这些id
s更改为~whatever~+num1\u num2?我知道我可以使用通配符捕获以\u 0\u 0
结尾的所有元素,但我不知道如何在重写ID时重用“捕获的”通配符部分。prop
方法接受2个参数,索引和oldProperty,这里不需要创建jQuery对象,+1用于使用prop
方法。这非常有效——谢谢。在实现之后,我意识到需要修改的一些id在\u0\u0
字符串之后包含了一些东西,所以我修改如下:newElem.find('[id*=\u0\u0]').prop('id',function(){var x=$(this).prop('id').split(''u0',2);返回x[0]+'+num1++num2+x[1]})代码>
$('[id$="_0_0"]').prop('id', function(index, currentID) {
return 'question_' + num1 + '_' + index;
})
$('[id$="_0_0"]').prop('id', function(index, currentID) {
return 'question_' + num1 + '_' + index;
})
$('[id$=_0_0]').prop('id', function(){
var x = $(this).prop('id').split('_')[0]; //part before _0_0
return x +'_'+ num1 + '_' + num2;
});