Как получить следующий относительный выпадающий с помощью JQuery - PullRequest
1 голос
/ 29 августа 2010

У меня есть этот код

<div id="aggregate" style="display:inline">
                    <%=Html.RadioButton("a", "1", true, new {id = "meRadio"})%><label>Me</label>
                    <%=Html.RadioButton("a", "2", false, new { id = "teamRadio" })%><label>Team: </label><% = Html.DropDownList("Teams", Model.Teams,  new {@scope="Team",  @id = "teamDropdown", @class = "filterDropdown" })%>
                    <%=Html.RadioButton("a", "4", false, new { id = "managerRadio" })%><label>Manager: </label><% = Html.DropDownList("Managers", Model.People, new { @scope = "Manager", @id = "managerDropdown", @class = "filterDropdown" })%>
                    <%=Html.RadioButton("a", "5", false, new { id = "locationRadio" })%><label>Location: </label><% = Html.DropDownList("Locations", Model.Locations, new { @scope = "Location", @id = "locationDropdown", @class = "filterDropdown" })%>
  </div>

В настоящее время у меня есть такой код:

 $('#workstreamRadio').click(function () {
     Enable("#workstreamDropdown");
 });

 $('#teamRadio').click(function () {
     Enable("#teamDropdown");
 });

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

каков синтаксис для выражения "выберите мне выпадающий список справа от переключателя, который я нажал"

1 Ответ

2 голосов
/ 29 августа 2010

Вы можете сделать это, используя .nextAll() и :first, например:

$("#aggregate :radio").change(function() {
  var dropdown = $(this).nextAll("select:first");
  //enable or disable dropdown
});

, так как они являются братьями и сестрами, используйте .nextAll(), который проходит через всех братьев и сестер, и вам нужен первый элемент <select>, поэтому выберите его среди братьев и сестер после того, как радио щелкнуло. Также обратите внимание на использование .change() здесь вместо .click(), оно будет срабатывать только при изменении выбора, что составляет обычно , что вы хотите здесь.

...