【问题标题】:how to get next relative dropdown using jquery如何使用 jquery 获取下一个相对下拉列表
【发布时间】:2011-04-05 09:46:21
【问题描述】:

我有这个代码

<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 来动态获取相应的下拉选择器,因为点击了特定的单选按钮,所以我不必对每个映射进行硬编码。

“获取我单击的单选按钮右侧的下拉选择器”的语法是什么

【问题讨论】:

    标签: jquery jquery-selectors css-selectors


    【解决方案1】:

    您可以像这样使用.nextAll():first 来做到这一点:

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

    因为他们是兄弟姐妹,所以使用 .nextAll() 来遍历所有兄弟姐妹,并且您想要第一个 &lt;select&gt; 元素,因此在单击收音机后从兄弟姐妹中选择它。还要看看在这里使用.change() 而不是.click(),它只会在选择更改时触发,这通常是你想要的。

    【讨论】:

    • 这将处理没有下拉菜单的第一个条目。我只希望这适用于除第一个单选按钮以外的所有其他单选按钮,因为第一个单选按钮的逻辑略有不同。我正在考虑在除了第一个单选按钮之外的所有单选按钮上都有一个类属性来解决这个问题。
    • @ooo - 您可以更改绑定选择器,将$("#aggregate :radio") 更改为$("#aggregate :radio:gt(0)") 以忽略第一个收音机,它不会被绑定:)
    • 为什么是nextAll('select:first') 而不是next('select')
    • @Alexander - .next() 找到 only very 下一个元素 if 它匹配选择器...它在找到之前不会继续查找,这有点违反直觉。
    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 2019-02-26
    • 2019-08-11
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2017-05-17
    相关资源
    最近更新 更多