我有这样的选项菜单:

<form name="AddAndEdit">
   <select name="list" id="personlist">
      <option value="11">Person1</option>
      <option value="27">Person2</option>
      <option value="17">Person3</option>
      <option value="10">Person4</option>
      <option value="7">Person5</option>
      <option value="32">Person6</option>
      <option value="18">Person7</option>
      <option value="29">Person8</option>
      <option value="28">Person9</option>
      <option value="34">Person10</option>
      <option value="12">Person11</option>
      <option value="19">Person12</option>
   </select>
</form>

现在我想通过使用href来改变所选的选项。例如:

<a href="javascript:void(0);"
  onclick="document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected';">change</a>

但是我想选择值=11 (Person1)的选项,而不是Person12。

如何更改此代码?


当前回答

注:选项索引从0开始计数。这意味着第一个选项的索引为0。

document.querySelector(".add__btn").addEventListener("click", function(){ var index = 1; /*change option value here*/ document.querySelector(".add__type").options.selectedIndex = index; document.querySelector(".add__description").value = "Option Index"; document.querySelector(".add__value").value = index; }); <html> <div class="add__container"> <select class="add__type"> <option value="inc" selected>+</option> <option value="exp">-</option> </select> <input type="text" class="add__description" placeholder="Add description"> <input type="number" class="add__value" placeholder="Value"> <button class="add__btn"> Submit </button> </div> <h4> Default Option Value will be selected after pressing Submit </h4>

其他回答

我相信博客文章JavaScript初学者-按值选择下拉选项可能会对你有帮助。

<a href="javascript:void(0);" onclick="selectItemByValue(document.getElementById('personlist'),11)">change</a>

function selectItemByValue(elmnt, value){

  for(var i=0; i < elmnt.options.length; i++)
  {
    if(elmnt.options[i].value === value) {
      elmnt.selectedIndex = i;
      break;
    }
  }
}

你也可以使用JQuery

$(document).ready(function () {
  $('#personlist').val("10");
}

注:选项索引从0开始计数。这意味着第一个选项的索引为0。

document.querySelector(".add__btn").addEventListener("click", function(){ var index = 1; /*change option value here*/ document.querySelector(".add__type").options.selectedIndex = index; document.querySelector(".add__description").value = "Option Index"; document.querySelector(".add__value").value = index; }); <html> <div class="add__container"> <select class="add__type"> <option value="inc" selected>+</option> <option value="exp">-</option> </select> <input type="text" class="add__description" placeholder="Add description"> <input type="number" class="add__value" placeholder="Value"> <button class="add__btn"> Submit </button> </div> <h4> Default Option Value will be selected after pressing Submit </h4>

数组索引将从0开始。如果你想要value=11 (Person1),你会得到位置getElementsByTagName('option')[10].selected。

你也可以像这样修改select.options.selectedIndex DOM属性:

函数selectOption(指数){ .options . getelementbyid(“select_id”)。selectedIndex =索引; } < p > <选择id = " select_id " > >, <选项被选中第一个选项> < /选项 <选项>第二个选项> < /选项 <选项>第三个选项> < /选项 < /选择> < / p > < p > <按钮onclick = " selectOption (0);>选择第一个选项</按钮> <按钮onclick = " selectOption (1);>选择第二个选项</button> . <按钮onclick = " selectOption (2);>选择第三个选项</button> . < / p >