Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2015, 14:03
Аватар для Jesus1
Новичок на форуме
Отправить личное сообщение для Jesus1 Посмотреть профиль Найти все сообщения от Jesus1
 
Регистрация: 26.06.2015
Сообщений: 3

Отладчик выдаёт ошибку . Не могу понять
Вообщем вопрос такой. Хочу, чтобы через кнопку поиск находило всю информацию о продуктах и выводила всё в таблице. Но отладчик выдаёт ошибку Uncaught ReferenceError: сhoiseElement is not defined shopProducts @ myJavaScript.js:51
searchProducts @ myJavaScript.js:7.

И подчеркивает вот это место: + сhoiseElement.nameProduct + "</td> <td>"+сhoiseElement.shop + "</td> <td> "+ сhoiseElement.price +"</td></tr></table>"

Код находится снизу.


window.onload =function(){
document.getElementById('searchButton').onclick = searchProducts;
}
var searchProducts = function (){
var products = document.getElementById('searchProducts');
var productsValue = products.value;
shopProducts(productsValue);
console.log(productsValue);
}


function Shop(nameProduct,shop,price){
this.nameProduct = nameProduct;
this.shop = shop;
this.price = price;
}

var bananM = new Shop("Банан", "MARTIN", "12 100 тыс/кг");
var orangeM = new Shop("Апельсин","MARTIN","15 300 тыс/кг");
var cola2M = new Shop("Кока-кола","MARTIN", "13 500 тыс/2л");
var cola1M = new Shop("Кока-кола","MARTIN", "8 500 тыс/1л");

var MARTIN =[bananM,orangeM,cola1M,cola2M];

var bananBel = new Shop("Банан", "Белмаркет", "10 900 тыс/кг");
var orangeBel = new Shop("Апельсин","Белмаркет","6 300 тыс/кг");
var cola2Bel = new Shop("Кока-кола","Белмаркет", "14 500 тыс/2л");
var cola1Bel = new Shop("Кока-кола","Белмаркет", "10 500 тыс/1л");

var belMarket =[bananBel,orangeBel,cola2Bel,cola1Bel];

var bananRub = new Shop("Банан", "Рублёвский", "15 900 тыс/кг");
var orangeRub = new Shop("Апельсин","Рублёвский","8 300 тыс/кг");
var cola2Rub = new Shop("Кока-кола","Рублёвский", "10 100 тыс/2л");
var cola1Rub = new Shop("Кока-кола","Рублёвский", "8 800 тыс/1л");

var rublevskiy = [bananRub,orangeRub,cola2Rub,cola1Rub];

var shop = [MARTIN, belMarket,rublevskiy];



function shopProducts(searchProduct){
for (var i = 0; i<shop.length;i++){
var choiseShop = shop[i];
var choiseElement =choiseShop[i];
if (choiseElement.nameProduct === searchProduct){

var table = document.getElementById("table");
table.innerHTML ="<table border='1px' style='border-collapse: collapse;'><tr><th>Название продукта</th> <th> Магазин</th> <th> Цена</th></tr>" +
+ "<tr><td>"+ сhoiseElement.nameProduct + "</td> <td>"+сhoiseElement.shop + "</td> <td> "+ сhoiseElement.price +"</td></tr></table>";

}
if(choiseElement.nameProduct !== searchProduct){console.log('Ничего не найдено.')};

}

}
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2015, 15:19
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

проблема в области видимости: function ограничивает область видимости.
Вот такой вариант рабочий:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГГ</title>
<style>
#table {
  width: 100px;
  height: 300px;
}
</style>
</head>
<body>
<input id="searchProducts"  type="text" value='Банан'>
<button id="searchButton">Жми</button>
<div id="table"></div>
<script>
window.onload =function(){
document.getElementById('searchButton').onclick = searchProducts;
}
var bananM = new Shop("Банан", "MARTIN", "12 100 тыс/кг");
var orangeM = new Shop("Апельсин","MARTIN","15 300 тыс/кг");
var cola2M = new Shop("Кока-кола","MARTIN", "13 500 тыс/2л");
var cola1M = new Shop("Кока-кола","MARTIN", "8 500 тыс/1л");

var MARTIN =[bananM,orangeM,cola1M,cola2M];

var bananBel = new Shop("Банан", "Белмаркет", "10 900 тыс/кг");
var orangeBel = new Shop("Апельсин","Белмаркет","6 300 тыс/кг");
var cola2Bel = new Shop("Кока-кола","Белмаркет", "14 500 тыс/2л");
var cola1Bel = new Shop("Кока-кола","Белмаркет", "10 500 тыс/1л");

var belMarket =[bananBel,orangeBel,cola2Bel,cola1Bel];

var bananRub = new Shop("Банан", "Рублёвский", "15 900 тыс/кг");
var orangeRub = new Shop("Апельсин","Рублёвский","8 300 тыс/кг");
var cola2Rub = new Shop("Кока-кола","Рублёвский", "10 100 тыс/2л");
var cola1Rub = new Shop("Кока-кола","Рублёвский", "8 800 тыс/1л"); 

var rublevskiy = [bananRub,orangeRub,cola2Rub,cola1Rub];

var shop = [MARTIN, belMarket,rublevskiy];

var searchProducts = function (){
var products = document.getElementById('searchProducts');
var productsValue = products.value;

shopProducts(productsValue);
console.log(productsValue);
}


function Shop(nameProduct,shop,price){
this.nameProduct = nameProduct;
this.shop = shop;
this.price = price;
}

function shopProducts(searchProduct){

for (var i = 0; i<shop.length;i++){
var choiseShop = shop[i];
var choiseElement =choiseShop[i];
if (choiseElement.nameProduct === searchProduct){

var table = document.getElementById("table");
table.innerHTML ="<table border='1px' style='border-collapse: collapse;'><tr><th>Название продукта</th> <th> Магазин</th> <th> Цена</th></tr>" +
+ "<tr><td>"+ choiseElement.nameProduct + "</td> <td>"+choiseElement.shop + "</td> <td> "+ choiseElement.price +"</td></tr></table>";

}
if(choiseElement.nameProduct !== searchProduct){console.log('Ничего не найдено.')};
}
}
</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемма с jquery fancybox, не могу понять в чем дело! bandesign jQuery 1 16.09.2013 16:35
Не могу исправить ошибку. Подскажите Saene Общие вопросы Javascript 6 16.02.2013 18:36
Не могу понять Замыкание. slip AJAX и COMET 7 19.01.2013 14:40
Выдает ошибку. Что делать? octavian Общие вопросы Javascript 1 20.02.2010 12:13
немогу создать фаил с помощью JavaScrip Greasemonkey в Mozilla firefox выдает ошибку crem Firefox/Mozilla 2 11.08.2009 03:44