javascriptのスコープについてです。
html上で次のようなボタンをクリックすると同時に、表の重複をチェックして、重複部分の背景色を変更するメソッドをjavascriptで組みたいのですが、 スコープがうまくいっていないためか、配列のデータがnullでエラーになってしまいます。
次のようなコードです。
javascript
1 function clickCheck(){ 2 var array = []; 3 for(i=1; i<document.getElementsByTagName("td").length; i++){ 4 var cell = document.getElementById("cell"+i).value 5 var branch = document.getElementById("br"+i).value 6 var cellbranch = cell + branch 7 array.push(cellbranch); 8 } 9 var sameArray = array.filter(function (x, i, self) { 10 return self.indexOf(x) === i; 11 for(var t; t <sameArray.length; ++t ){ 12 var index = array.indexOf(sameArray[t]); 13 var doubleCell = document.getElementById('cell'+ index + 1); 14 var doubleBranch = document.getElementById('br'+ index + 1); 15 doubleCell.style.backgroundColor = "red"; 16 doubleBranch.style.backgroundColor = "red"; 17 } 18 19 }); 20 } 21
試したこと
以下の部分で配列arrayにデータが格納されていないため、エラーが出るようです。
javascript
1 var sameArray = array.filter(function (x, i, self) { 2 return self.indexOf(x) === i;
このスコープの問題の解決方法と、このメソッドのロジックに問題がないかご教授お願いいたします。
あなたの回答
tips
プレビュー