Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么第56行和第67行不起作用?(.votess+;=1;)_Javascript - Fatal编程技术网

Javascript 为什么第56行和第67行不起作用?(.votess+;=1;)

Javascript 为什么第56行和第67行不起作用?(.votess+;=1;),javascript,Javascript,您正在单击事件下创建一个局部变量allCars,而this.allCars指向窗口下的allCars变量 var imgs = ['bmw.jpg', 'bugatti.jpg', 'classic.jpg', 'concept.jpg', 'corvette.jpg', 'dino.jpg', 'lambo.jpg', 'mcclaren.jpg', 'p1.jpg', 'porsche.jpg', 'rally.jpg', 'audi.jpg']; // var imgs_c

您正在单击事件下创建一个局部变量
allCars
,而
this.allCars
指向
窗口下的
allCars
变量

var imgs = ['bmw.jpg', 'bugatti.jpg', 'classic.jpg', 'concept.jpg', 'corvette.jpg', 'dino.jpg', 'lambo.jpg', 'mcclaren.jpg', 'p1.jpg', 'porsche.jpg', 'rally.jpg', 'audi.jpg'];
        // var imgs_count = {'bmw.jpg': 0, 'bugatti.jpg': 0, 'classic.jpg': 0, 'concept.jpg': 0, 'corvette.jpg': 0, 'dino.jpg': 0, 'lambo.jpg': 0, 'mcclaren.jpg': 0, 'p1.jpg': 0, 'porsche.jpg': 0,'rally.jpg': 0, 'audi.jpg':0}

        // for (var i in imgs_count) {
        //   imgs_count[i]
        // }

        var allCars = [];
        var votes;

        function Car(file) {
          this.file = file;
          this.votes = 0;
          allCars.push(this);
        }

        var bmw = new Car('bmw.jpg');
        var bugatti = new Car('bugatti.jpg');
        var classic = new Car('classic.jpg');
        var concept = new Car('concept.jpg');
        var corvette = new Car('corvette.jpg');
        var dino = new Car('dino.jpg');
        var lambo = new Car('lambo.jpg');
        var mcclaren = new Car('mcclaren.jpg');
        var p1 = new Car('p1.jpg');
        var porsche =new Car('porsche.jpg');
        var rally = new Car('rally.jpg');
        var audi = new Car('audi.jpg');

        var idx1 = 0;
        var idx2 = 0;

        var path = 'cars/';
        var done = false;

        function getRandomImage() {
          idx1 = Math.floor(Math.random()*imgs.length);
          var img1 = imgs[idx1];
          idx2 = idx1;
          while (idx2 == idx1) {
            idx2 = Math.floor(Math.random()*imgs.length);
          }
          img2 = imgs[idx2];
          document.getElementById('choice1').setAttribute('src', path + img1);
          document.getElementById('choice2').setAttribute('src', path + img2);

        }

        function setOnClicks(id) {
          document.getElementById(id).addEventListener('click', function(event) {
            var choice = event.target.id;
            if (choice === 'choice1') {
              console.log(allCars);
              var img = document.getElementById(id).getAttribute('src');
              var allCars = img.slice(5,img.length);
              this.allCars[idx1].votes += 1;
              console.log(idx1);
              console.log(this.allCars[idx1].votes)
              if ( allCars[idx1].votes=3) {

                  done = true;

              }
            }
            if (choice === 'choice2') {
              var img = document.getElementById(id).getAttribute('src');
              var allCars = img.slice(5,img.length);
              console.log(idx2);
              console.log(this.allCars[idx2].votes);
              this.allCars[idx2].votes += 1;

              if (allCars[idx2].votes == 3) {
                done = true;
              }
            }
            if (!done)
              getRandomImage();
          });
        }



        getRandomImage();
        setOnClicks('choice1');
        setOnClicks('choice2')l

您正在使用同名的本地
var
声明覆盖全局
allCars

 var allCars = img.slice(5,img.length);  // this is a local variable
 this.allCars[idx1].votes += 1;   // this is same as window.allCars
 console.log(idx1);

单击图像时,我无法获得要添加+1的数组的投票。我得到了“uncaughttypeerror:cannotreadproperty“11”of undefined”或类似的返回,就像它在我的“allCars”数组中找不到一样问题(或至少是一个问题)是
var allCars
this。所有的车
都不是同一回事。请看这里的例子:如果我删除(这个),它仍然显示相同的问题,即使在第一次更正之后,代码中仍然有一些错误
var allCars = img.slice(5,img.length);