如何选择重复的DIV ID

时间:2017-08-24 14:09:03

标签: javascript html css

我有两个div,第二个是从第一个克隆使用:

function dupe() {
var cc = document.getElementById("cc"); // original
var cc2 = cc.cloneNode(true); // clone
cc.parentNode.appendChild(cc2);
$('#cc :input').attr('disabled', true);
document.getElementById("cc").style.opacity = "0.5"; // affects original, which is fine
document.getElementById("radioNew").checked = true; // affects original, but needs to affect clone
}

但是,这一行不会影响克隆,而是影响原始格式,就像它上面的一行:

document.getElementById("radioNew").checked = true;

由于克隆具有相同的ID,如何在克隆中选择ID?我是否必须创建一个函数来重命名克隆中的所有ID?

1 个答案:

答案 0 :(得分:0)

要使用id正确执行此操作,您需要更改所有嵌套节点中的所有id属性,因为您创建了一个" deep"克隆

当你真的需要像这样克隆节点时,我建议不要通过id识别节点,而是通过其他选择器识别节点,比如CSS(伪)类。使用jQuery这很容易:

HTML:

<!-- Note: class attributes instead of id -->
<div class="cc">
    <div class="radioNew">
    ...
    </div>
</div> 

JS:

var original = $('.cc');
var clone = original.clone();

original.find('.radioNew').attr( ... );    <--- finds subelement of original
clone.find('.radioNew').attr( ... );       <--- finds subelement of clone