Как узнать 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, время: 11:54. |