代码之家  ›  专栏  ›  技术社区  ›  Leonel Matias Domingos

按其值获取下拉列表的jquery选择器

  •  1
  • Leonel Matias Domingos  · 技术社区  · 6 年前

    我找不到一个有一定价值的下拉列表。

    例1:

    $('[value="' + $(e.currentTarget).attr('name') + '"]')
    

    给我一个有价值的选择。

    例2:

    $('[value="' + $(e.currentTarget).attr('name') + '"]').parent()
    

    提供正确的下拉列表。但如果我不止一个 <select> 元素和具有相同值的选项有更多结果。

    找不到 <选择> 元素的价值?

    提前谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Satpal    6 年前

    :has() selector 可用于瞄准 SELECT 为了 :selected selector 选择的选项。

    选择至少包含一个与指定选择器匹配的元素的元素。

    var selects = $('select:has(option:selected[value="' + $(e.currentTarget).attr('name') + '"])');
    

    var v = 1;
    var selects = $('select:has(option:selected[value="' + v + '"])')
    selects.css('color', 'green')
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select>
      <option value="0">0</option>
      <option value="1">1</option>
    </select>
    <select>
      <option value="2">2</option>
    </select>
    <select>
      <option value="0">0</option>
      <option value="1" selected>1</option>
    </select>

    或者,使用 .filter()

    var selects = $('select').filter(function() {
       return $(this).val() == $(e.currentTarget).attr('name');
    });
    

    var v = 1;
    var selects = $('select').filter(function() {
      return $(this).val() == 1;
    });
    selects.css('color', 'green')
    <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>
    <选择>
    <option value=“0”>0</选项>
    <option value=“1”>1</选项>
    </选择>
    <选择>
    <option value=“2”>2</选项>
    </选择>
    <选择>
    <option value=“0”>0</选项>
    <option value=“1”选定>1</选项>
    </选择>