1

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

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

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

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

4

2 回答 2

2
$('[id$=_0_0]').prop('id', function(){
    var x = $(this).prop('id').split('_')[0]; //part before _0_0
    return x +'_'+ num1 + '_' + num2;
});
于 2012-12-25T03:31:34.443 回答
1
$('[id$="_0_0"]').prop('id', function(index, currentID) {
    return 'question_' + num1 + '_' + index;
}) 
于 2012-12-25T03:29:54.693 回答