Группировать выбранные (выпадающее меню) значения по общему значению?

0

Если у меня есть выпадающее меню, которое выглядит, например:

<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 и выбирать специфику. Я бы предпочел, чтобы это было сгруппировано, чтобы они могли просматривать участки с низким, средним или высоким уровнем преступности.

У меня есть раскрывающееся меню, которое позволяет выделенному значению выделить связанную область на карте.

Спасибо за ответы до сих пор. Яснее?

  • 0
    Вы можете сделать список вместо выбора
Теги:
google-fusion-tables

3 ответа

1
Лучший ответ

Я не уверен, что вы имеете в виду, но я думаю, вы либо хотите сгруппировать свои варианты:

<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]);
            }
        }
    }

}

Демо: http://jsfiddle.net/wYFCD/

  • 0
    Извините, чтобы уточнить, я просто хочу два варианта, как ваш второй пример! Чтобы поместить это в контекст, проблема, с которой я столкнулся, заключается в том, что я читаю данные из таблицы Google Fusion, поэтому она не позволяет мне добавлять несколько значений для одного выбора. Таким образом, у меня есть 1'807 вариантов, которые я хочу сгруппировать по общим значениям Low, Medium и High.
0
<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 и так далее.

  • 0
    Извините, спасибо, что поправили меня!
  • 0
    Хотя мое значение относится к значениям в таблице Google Fusion, поэтому я пытаюсь сгруппировать эти значения по трем параметрам для пользователя. Таким образом, низкий, средний и высокий. В отличие от простого изменения имени каждого значения, которое можно выбрать.
Показать ещё 3 комментария
0

указать атрибут 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>
  • 0
    Разве это не представляет выпадающее меню выбора, состоящее из «нечетных», «нечетных», «четных», «четных»? Я только что попробовал это в своем коде, но это ничего не меняет в реальном представлении выпадающего меню. Чтобы уточнить в контексте, у меня есть 1807 вариантов / значений, которые я хочу разбить на группы под общими значениями Низкий, Средний и Высокий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню