我的页面上有一系列画布元素,用于制作时钟。其中每个都有许多带有默认值的变量 - 这些变量在任何时候都不是未定义的。 (以下我用作变量示例,但所有其他变量都是这种情况。)默认情况下,变量'am'为false,除非我将其更改为true。这是我的第一个时钟:
<canvas id="piechart0" width="200" height="200"></canvas>
我试图让它如果'piechart0.am == true',会出现带有AM图像的按钮,如果'piechart0.pm == false'它会消失。但是,当我执行以下操作时:
<script>
var clock = document.getElementById("piechart0");
var am = clock.am;
if (am) {
........
</script>
它正确地将时钟识别为“canvas #popchart0”,但是clock.am和new var am都是“未定义”,而不是piechart0.am实际等于的true或false。当脚本抓取正确的元素/我在这里做错了什么时,为什么所有的变量都是未定义的?
编辑:愚蠢的错误,我正在使用一个不同的类来跟踪变量,这些变量将决定我将在画布上绘制什么。我试图访问这个类的变量,这就是为什么canvas.am会显示为未定义的原因。分辨答案 0 :(得分:0)
输出正确。
clock variable指的是画布HTML对象。根据您在此处发布的内容,您尚未真正为该画布定义了am属性。因此,clock.am未定义。
如果你这样做
console.log("Should be the canvas object:: " + clock);
console.log("Did not define this, so it should output undefined:: " + clock.am);
console.log("Did define this as 200, so it should output 200:: " + clock.width);
您将看到显示的宽度,但我将是未定义的。希望明白。