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>
答案 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 = '=' }
几乎相同)。