Если у меня есть выпадающее меню, которое выглядит, например:
<select>
<option value="1">1</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="4">4</option>
</select>
Как я могу сгруппировать эти параметры, чтобы параметры, представленные в раскрывающемся меню, отображались в виде двух опций "ровный" или "нечетный" вместо каждого отдельного значения, в то же время предоставляя одинаковые результаты?
РЕДАКТИРОВАТЬ:
Уточнение того, что я задаю в контексте: Извините за неправильный выбор слова в моем вопросе ("группировка"). Я не пытаюсь группировать теги значений под заголовками.
Я пытаюсь превратить список значений 1'807, которые отображаются в качестве опции в раскрывающемся меню, в раскрывающееся меню, которое просто имеет значения Low, Medium и High, которые могут быть выбраны пользователем.
Эти низкие, средние и высокие значения будут относиться к диапазону моего текущего списка значений. {ie Low может соответствовать значениям от 0 до 300, Medium 300-1000, High 1000-1807).
Мои значения хранятся в таблице Google Fusion, которую я пытаюсь использовать, чтобы отразить уровень преступности в этой области. Значения, используемые в раскрывающемся меню, - это уровень преступности для каждой области. Вместо того, чтобы пользователь должен просеивать значения 1807 и выбирать специфику. Я бы предпочел, чтобы это было сгруппировано, чтобы они могли просматривать участки с низким, средним или высоким уровнем преступности.
У меня есть раскрывающееся меню, которое позволяет выделенному значению выделить связанную область на карте.
Спасибо за ответы до сих пор. Яснее?
Я не уверен, что вы имеете в виду, но я думаю, вы либо хотите сгруппировать свои варианты:
<select>
<optgroup label="Odd">
<option value="1">1</option>
<option value="3">3</option>
</optgroup>
<optgroup label="Even">
<option value="2">2</option>
<option value="4">4</option>
</optgroup>
</select>
... или у вас есть только два варианта:
<select>
<option value="1,3">odd</option>
<option value="2,4">even</option>
</select>
Обновить
Как я понимаю из комментариев, вопрос был больше о том, как использовать значение select, а не о том, как сгруппировать параметры.
Пусть говорят, что у нас есть переменные rows
, содержащие ваши ~ 1800 строк данных. И вы хотите подмножество этих строк на основе свойства value
, исходя из того, что вы выбираете в раскрывающемся списке.
HTML:
<select id="filterOnValue">
<option value="0,100">Low</option>
<option value="100,1000">Medium</option>
<option value="1000">High</option>
</select>
JS:
var select = document.getElementById("filterOnValue"),
rows = [...], // (lots of data)
selected = rows;
select.onchange = function (e) {
selected = [];
filterValues = select.options[select.selectedIndex].value.split(',');
for(var i = 0; i < rows.length; i++) {
if(typeof filterValues[1] !== 'undefined') {
if(rows[i].value >= parseInt(filterValues[0]) && rows[i].value < parseInt(filterValues[1])) {
selected.push(rows[i]);
}
} else {
if(rows[i].value >= parseInt(filterValues[0])) {
selected.push(rows[i]);
}
}
}
}
<select>
<option value="1">odd</option>
<option value="3">odd</option>
<option value="2">even</option>
<option value="4">even</option>
</select>
Когда кто-то выбирает в раскрывающемся списке, вы получите value
не внутреннего текста.
Обновить:
После того, как вы обновили вопрос, в соответствии с тем, что я получаю от вас, вы можете сделать, как this-
<select>
<option value="300">Low</option>
<option value="1000">Medium</option>
<option value="1807">High</option>
</select>
Когда пользователь выбирает " Low
", вы получаете значение " 300
". Таким образом, обработайте области, которые имеют уровень преступности между 0-300
и " Medium
" 300-1000
и так далее.
указать атрибут name
<select>
<option value="1" name="odd">1</option>
<option value="3" name="odd" >3</option>
<option value="2" name="even">2</option>
<option value="4" name="even" >4</option>
</select>