代码之家  ›  专栏  ›  技术社区  ›  Ecognium

当其中一个下拉列表发生更改时,如何获取所有其他下拉列表的值

  •  1
  • Ecognium  · 技术社区  · 17 年前

    我试图根据一组下拉列表中的值填充一个文本框。一旦用户更改下拉列表的值,我希望获得包含在同一div中的所有其他下拉列表的值。在下面的示例中,我尝试通过对话框在给定div中显示所有“选择”的值。当我运行下面的代码时,对话框根本不会被点击。

    <div id="cat1">
        <select id="sel1" >
          <option  value="abc" > abc </option>
          <option  value="def" > def </option>
        </select>
    
        <select id="sel2">
          <option  value="rst" > rst </option>
          <option  value="uvw" > uvw </option>
        </select>
    </div>
    
    <div id="additional">
    <!-- more selects -->
    </div>
    

    jQuery:

    $(document).ready(function() {
        $("#sel1").change(function() {
            $(this).siblings('select').each(function() { 
                    alert ('hi');  // does not even iterate
                    alert($(this).val());
            });
        });
    });
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Vincent Ramdhanie    17 年前

    您可以为div中的每个选择添加一个类吗?像这样:

    <div id="cat1">
    <select id="sel1" class="div1">
      <option  value="abc" > abc </option>
      <option  value="def" > def </option>
    </select>
    
    <select id="sel2" class="div1">
      <option  value="rst" > rst </option>
      <option  value="uvw" > uvw </option>
    </select>
    </div>
    

    然后jQuery可以执行以下操作:

     $('.div1').each(function() { 
                alert ('hi');  // does not even iterate
                alert($(this).val());
        });