Я пытаюсь создать несколько зависимых выпадающих (выбирает) уникальным способом. Я хочу ограничить использование селекторов и хочу добиться этого с помощью одного селектора класса на всех SELECT
s; вычисляя SELECT
, который был изменен его индексом. Следовательно, измененный SELECT[i]
изменит только SELECT[i+1]
(а не предыдущие, такие как SELECT[i-1]
).
Для HTML, как это:
<select class="someclass">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<select class="someclass">
</select>
<select class="someclass">
</select>
где SELECT
s, кроме первого, получит что-то через AJAX.
Я вижу, что следующий Javascript дает мне правильное значение правильного SELECT
, а значение i
также соответствует правильному SELECT
.
$(function() {
$(".someclass").each(function(i) {
$(this).change(function(x) {
alert($(this).val() + i);
});
});
});
Обратите внимание, что я действительно хочу подход минимального селектора. Я просто не могу понять, как к этому подойти. Должен ли я использовать массивы? Как сохранить все SELECTS
в массиве, а затем выбрать их?
Я полагаю, что, поскольку вышеприведенный код уже проходит индекс i
, также должен быть способ без массивов.
Спасибо большое.
AJ
UPDATE:
Вот несколько лучшее описание:
- На странице более 2 `SELECT` с классом `someclass`. SELECT [0] изначально имеет некоторые значения, и его наследники пусты, так как они будут меняться в зависимости от значения соответствующего непосредственного предка.
- Если в `SELECT [i]` есть изменение, оно генерирует событие, и в `SELECT [i + 1]` вводятся соответствующие `OPTION`s.
- `SELECT [i + 2]` и другие преемники сбрасываются, если у них ранее были какие-либо данные. Таким образом, заполняется только непосредственный ребенок, но дальнейшие преемники сбрасываются.
Надеюсь, я хорошо сформулировал. Пожалуйста, дайте мне знать, если вам нужно больше разъяснений о том, что я хочу.