Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2014, 18:05
Аспирант
Отправить личное сообщение для ArtemGavrilenko Посмотреть профиль Найти все сообщения от ArtemGavrilenko
 
Регистрация: 25.04.2014
Сообщений: 37

Как узнать 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 выбранного элемента??
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2014, 21:17
Аватар для Zuenf
Кандидат Javascript-наук
Отправить личное сообщение для Zuenf Посмотреть профиль Найти все сообщения от Zuenf
 
Регистрация: 27.01.2012
Сообщений: 134

Можно как-то так, если я правильно понял задачу:
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;
}

Т.е. находим продукт удовлетворяющий условию.
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2014, 21:43
Аватар для Zuenf
Кандидат Javascript-наук
Отправить личное сообщение для Zuenf Посмотреть профиль Найти все сообщения от Zuenf
 
Регистрация: 27.01.2012
Сообщений: 134

А еще твою функцию build можно не хило так сократить:
var _make = document.querySelector('#_make>option:checked').value,
          _model = document.querySelector('#_model>option:checked').value,
          _country = document.querySelector('#_country>option:checked').value;
Ответить с цитированием
  #4 (permalink)  
Старый 28.05.2014, 13:01
Аспирант
Отправить личное сообщение для ArtemGavrilenko Посмотреть профиль Найти все сообщения от ArtemGavrilenko
 
Регистрация: 25.04.2014
Сообщений: 37

Так и не понял как все вместе слепить.
Пользователь выбрал в выпадающих списках определенный товар, и на основе выбранного товара в функцию передался id элемента массива
функция findProduct(name, model, country){} возвратила объект

<input type="button" value="Показать характеристики" id="_build" onclick="more(); return false;" >

На данном этапе если передать вручную то работает, а как передать динамически?
Ответить с цитированием
  #5 (permalink)  
Старый 28.05.2014, 13:42
Аспирант
Отправить личное сообщение для ArtemGavrilenko Посмотреть профиль Найти все сообщения от ArtemGavrilenko
 
Регистрация: 25.04.2014
Сообщений: 37

Решил! Всем спасибо кто откликнулся
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать ID выделенного элемента в форме? Diger Events/DOM/Window 4 19.11.2012 07:36
как узнать тег элемента с помощью jQuery? Shitbox2 jQuery 2 03.11.2012 08:04
Как узнать индекс элемента над которым находится курсор Zhazhah jQuery 2 28.03.2011 23:30
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48
Узнать CSS правило для элемента vinet Events/DOM/Window 4 10.12.2010 08:12