根据值选择选项

时间:2018-11-25 20:41:17

标签: jquery

M试图做一些DOM操作,我想根据该值选择下拉选项:

$(this).parent().parent().find("select[name*='weight_prefix']").each(function() {
    $(this)[0].selectedIndex = 0;
}); 

例如,它基于索引进行选择,例如,如何基于值进行选择  选择value is '+'

   <select name="product_option[0][product_option_value][0][weight_prefix]" class="form-control">
       <option value="=">=</option>
       <option value="+">+</option>
       <option value="-" selected="selected">-</option>
   </select>

2 个答案:

答案 0 :(得分:0)

您可以使用val()

$("select[name*='weight_prefix']").val("=");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="product_option[0][product_option_value][0][weight_prefix]" class="form-control">
  <option value="=">=</option>
  <option value="+">+</option>
  <option value="-" selected="selected">-</option>
</select>

答案 1 :(得分:0)

您不需要任何jQuery。只需使用简单的原始Javascript并设置value元素的select

document.querySelector('[name="product_option[0][product_option_value][0][weight_prefix]"').value = "+";
<select name="product_option[0][product_option_value][0][weight_prefix]" class="form-control">
  <option value="=">=</option>
  <option value="+">+</option>
  <option value="-" selected="selected">-</option>
</select>

如果您有多个(选择器并使用each()建议),请执行以下操作:

[...document.querySelectorAll('[name*="[weight_prefix]"')].forEach(x => x.value = "=")
<select name="product_option[0][product_option_value][0][weight_prefix]" class="form-control">
  <option value="=">=</option>
  <option value="+">+</option>
  <option value="-" selected="selected">-</option>
</select>


<select name="product_option[0][product_option_value][1][weight_prefix]" class="form-control">
  <option value="=">=</option>
  <option value="+">+</option>
  <option value="-" selected="selected">-</option>
</select>

<select name="product_option[0][product_option_value][2][weight_prefix]" class="form-control">
  <option value="=">=</option>
  <option value="+" selected="selected">+</option>
  <option value="-">-</option>
</select>

  • document.querySelectorAll('[name*="[weight_prefix]"')为您提供包含匹配的NodeList元素的Array(类似于select)。
  • [...document.querySelectorAll('[name*="[weight_prefix]"')]将您的NodeList成员拉入实际的array(这称为剩余价差,这是 ECMAScript 2015 引入的功能>(也称为 ES6 )),因此您可以使用forEach()上的Array方法NodeList遍历列表。
  • 您将箭头函数传递给forEach()x => x.value = '='(与编写function(x) { x.value = '=' }几乎相同)。