如何使用javascript在下拉列表中选择名称?

时间:2015-04-05 00:51:10

标签: javascript select

我尝试过使用这些。使用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>

2 个答案:

答案 0 :(得分:0)

您注意到s中的getElementsByName,它暗示它返回的元素集合不仅仅是单个元素。要访问此集合中的元素,您可以使用数组表示法collection[index] 所以在你的代码中

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

getElementsByName返回数组,但getElementById返回DOM对象。

getElementsByName

getElementById

相关问题