所以我试图用Javascript做的是,当我做类似于document.getElementByID(“product-select”)的事情的时候这样做.value =“34”; 它会自动按下它。
每当我尝试这样做时它会使下拉菜单变为空白而不会自动更改它。我可以帮忙吗?
<div id="product-variants" class="">
<div class="select-wrapper">
<select id="product-select" name="id" class="">
<option value="28223706565">32</option>
<option value="28223706629">34</option>
<option value="28223706693">36</option>
</select>
</div>
</div>
答案 0 :(得分:2)
下拉值未自动更改的原因是,当您使用 document.getElementByID(&#34; product-select&#34;)设置下拉值时。值=&#34; 34& #34; ,它不会选择文本节点为 34 的选项,只有当您的某个选项的值为34时才会更改下拉列表。为了使其工作,您可以如下所示更改您的实施:
var x = document.getElementById("product-select").options;
for(var i=0;i<x.length;i++){
if(x[i].text=="34"){
x[i].selected=true;
break;
}
}
答案 1 :(得分:1)
也许
document.getElementByID("product-select").value = "34";
应该是
document.getElementByID("product-select").value = "28223706629";
另一种方法是引用索引,例如
document.getElementById("product-select").selectedIndex = 1;
答案 2 :(得分:0)
如果您知道值的顺序,可以使用
document.getElementByID("product-select").selectedIndex
方法
如果你想在这种情况下选择值34,那么它是第二个选项,因此它的索引是1,32索引是0而36索引是2
因此,如果您想将值更改为34,请调用
document.getElementByID("product-select").selectedIndex = 1