Как узнать id элемента массива
Добрый день! Есть массив вида
var goods = [ { name: { ru:'МТЗ', ua: 'МТЗ', }, model: 'МТЗ 82.1', country: { ru:'Беларусь', ua: 'Білорусь', }, price: '204550', transmission : '18/4', engine: '59.6/81', wheel_formula: '4X4', images: '/img/lizingselhozhehniki/mtzbelorus/_82.1.jpg', identificator:'1', }, { name: { ru:'МТЗ', ua: 'МТЗ', }, model: 'МТЗ 892', country: { ru:'Беларусь', ua: 'Білорусь', }, price: '215910', transmission: '18/4', engine: '65/88.7', wheel_formula: '4X4', images: '/img/lizingselhozhehniki/mtzbelorus/_892.jpg', identificator:'2', } ] Функция для определения выбранных элементов function build(){ var _make = document.getElementById('_make'); var _model = document.getElementById('_model'); var _country = document.getElementById('_country'); var a,b,c = 0; var form = document.body.children[0]; var select1 = form.elements.make; var select2 = form.elements.model; var select3 = form.elements.country; for (var i = 0; i < select1.options.length; i++) { var option = select1.options[i]; if(option.selected) { a = option.value; alert(a); } } for (var i = 0; i < select2.options.length; i++) { var option = select2.options[i]; if(option.selected) { b = option.value; alert(b); } } for (var i = 0; i < select3.options.length; i++) { var option = select3.options[i]; if(option.selected) { c = option.value; alert(c); } } } Выпадающие списки вида <form id="form-lizing"> <label id="label_make" name="label_make">Марка техники</label> <select id="_make" name="make"> <option value="">...</option> </select> <label id="label_model">Модель техники</label> <select id="_model" name="model"> <option value="">...</option> </select> <label id="label_country">Страна производитель</label> <select id="_country" name="country"> <option value="">...</option> </select> <input type="button" value="Показать характеристики" id="_build" onclick="build(); return false;" > </form> Как получить на основе этого id выбранного элемента?? |
Можно как-то так, если я правильно понял задачу:
function findProduct(name, model, country){ for(var id in goods){ var product = goods[id]; if(product.model == model && (product.name.ru == name || product.name.ua == name) && (product.country.ru == country || product.country.ua == country)) return product; } return false; } Т.е. находим продукт удовлетворяющий условию. |
А еще твою функцию build можно не хило так сократить:
var _make = document.querySelector('#_make>option:checked').value, _model = document.querySelector('#_model>option:checked').value, _country = document.querySelector('#_country>option:checked').value; |
Так и не понял как все вместе слепить.
Пользователь выбрал в выпадающих списках определенный товар, и на основе выбранного товара в функцию передался id элемента массива функция findProduct(name, model, country){} возвратила объект <input type="button" value="Показать характеристики" id="_build" onclick="more(); return false;" > На данном этапе если передать вручную то работает, а как передать динамически? |
Решил! Всем спасибо кто откликнулся :)
|
Часовой пояс GMT +3, время: 04:11. |