我想用一種顏色填充畫布,該顏色是對象內數組的一個元素,元素索引應該是i但代碼似乎是錯誤的。 color1中的變量已經聲明,並且包含一個字符串,該字符串是該顏色的十六進制值。對象jQuery中的數組訪問元素
var colorsObj = {
color1: [orange,amber,apricot,tangerine,bittersweet,persimmon,salmon,peach,pumpkin]
}
function drawCanvas(color) {
for(var i = 1; i < 10; i++){
$('.app').append('<canvas class="shadescolors" id="shade'+i+'" width="100" height="100">');
var canvas = document.getElementById('shade'+i);
var context = canvas.getContext('2d');
canvas.width = window.innerWidth/3;
cc = canvas.width;
radius = cc/2-10;
canvas.height = canvas.width;
context.beginPath();
context.arc(cc/2, cc/2, cc/2-10, 0, Math.PI*2, true);
alert(colorsObj.color[i]);
context.fillStyle = colorsObj.color[i];
context.fill();
context.lineWidth = 2;
context.strokeStyle = '#8A8A8A';
context.stroke();
}
}
drawCanvas('color1');
警報也不會觸發。
'colorsObj.color'是不一樣'colorsObj.color1'。 – PHPglue
你的顏色對象有一個屬性,它是一個名爲'color1'的數組。您正嘗試訪問不存在的名爲'color'的數組的索引。其次,你的數組包含一堆可能都未定義的值。我認爲你的意思是讓它們成爲字符串'colors:['orange,'amber'... etc]'因爲你正在向你的'drawCanvas'函數傳遞一個字符串,它看起來像你試圖訪問colorObjects數組,但是你使用錯誤的語法。 'colorObj ['color1']'會起作用。但我認爲你有這個錯誤,你可能想查找JavaScript對象和數組 – azium
你應該使用瀏覽器控制檯(F12)來查看JavaScript錯誤,以幫助你找出可能導致錯誤的原因。 – azium