我尝试过使用这些。使用getElementById它适用于带有id的下拉列表。但是当为没有id的下拉列表更改为getElementsByName时,它不会。
var name = "Charlie";
function setSelectedIndex(s, v) {
for ( var i = 0; i < s.options.length; i++ ) {
if ( s.options[i].text.slice(0,name.length) == v ) {
s.options[i].selected = true;
return;
}
}
}
setSelectedIndex(document.getElementsByName('attributes[10]'),name);
<select name="attributes[10]" title="Football Player" class="attribute_selected attribute_required">
<option value="">Select name</option>
<option value="" selected="selected"></option>
<option value="159" >David</option>
<option value="163" >Charlie</option>
<option value="407" >Chris</option>
<option value="161" >Ramon</option>
<option value="356" >John</option>
</select>
答案 0 :(得分:0)
您注意到s
中的getElementsByName
,它暗示它返回的元素集合不仅仅是单个元素。要访问此集合中的元素,您可以使用数组表示法collection[index]
所以在你的代码中
var name = "Charlie";
function setSelectedIndex(s, v) {
for ( var i = 0; i < s.options.length; i++ ) {
if ( s.options[i].text.slice(0,name.length) == v ) {
s.options[i].selected = true;
return;
}
}
}
setSelectedIndex(document.getElementsByName('attributes[10]')[0],name);
&#13;
<select name="attributes[10]" title="Football Player" class="attribute_selected attribute_required">
<option value="">Select name</option>
<option value="" selected="selected"></option>
<option value="159" >David</option>
<option value="163" >Charlie</option>
<option value="407" >Chris</option>
<option value="161" >Ramon</option>
<option value="356" >John</option>
</select>
&#13;
答案 1 :(得分:0)