我多次克隆一个实体,现在我需要对每个实体进行轮换。每个旋转都不同,并存储在一个数组中。如何分配这些轮换?
window.onload=function(){
rollRot = document.getElementById("roller-rotation");
rollEl = document.getElementById("roller");
rollCen = document.getElementById("roller-center");
var nElements = 6;
var degSep = 360/nElements;
var rollers = new Array(nElements);
var degRot = 0;
//creat array with rotation data then clone rollerRot
for(var i = 0; i < nElements; i++){
rollers[i] = [{rotation: "0, " + degRot + ", 0"}];
degRot = degRot + degSep;
console.log(degRot);
rollCen.appendChild(rollRot.cloneNode(true));
};
console.log(rollers);
console.log(degSep);
;
//configure rotation
var rollerNodes = document.querySelectorAll("#roller-
rotation");
console.log(rollerNodes);
rollers.forEach(function(rollersData, index) {
var rollerItem = rollerNodes[index];
rollerItem.setAttribute("visible", true);
rollerItem.setAttribute("rotation:",
rollersData.rotation); //<----------------
console.log(rollerItem);
});
}
我希望克隆的实体的旋转能够进行诸如(0,0,0)(0,60,0)(0 120 0)之类的工作,
相反,它们始终都是(0,0,0)
答案 0 :(得分:0)
具有如下语法:
rollers[i] = [{rotation: "0, " + degRot + ", 0"}];
您要创建一个数组,其中的滚子数组中的对象为0
。要访问它,您需要做
rollers.forEach(function(rollersData, index) {
// ...
// rollers item
// \/
rollersData[0].rotation
// /\
// the inner array with the rotation object
像这样:
rollerItem.setAttribute("rotation", rollersData[0].rotation)
[]
这样的rollersData.rotation
括号。
提琴here。