Как изменить параметр HTML, выбранный с помощью JavaScript?

У меня есть меню опций, как это:

<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>

И теперь я хочу изменить выбранную опцию, используя ссылку. Например:

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

Но я хочу выбрать вариант сvalue=11 (Person1)неPerson12.

Как мне изменить этот код?

Ответы на вопрос(7)

Вы также можете использовать JQuery

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

Я считаю, что сообщение в блогеJavaScript для начинающих & # x2013; Выберите опцию выпадающего по значению может помочь тебе

<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;
    }
  }
}
 27 сент. 2013 г., 16:29
Вы, вероятно, должныbreak вне вашего цикла, как только вы нашли выбранное значение. Экономит время, если список длинный и целевое значение - одно из первых.

Вот все инструменты как чистый код JavaScript для обработки Selectbox:

Updated - 28-Aug-2018 | Скрипач ДЕМО

JavaScript Code:

/**
 * Empty Select Box
 * @param eid Element ID
 * @param value text
 * @param text text
 * @author Neeraj.Singh
 */
function emptySelectBoxById(eid, value, text) {
    document.getElementById(eid).innerHTML = "<option value='" + value + "'>" + text + "</option>";
}


/**
 * Reset Select Box
 * @param eid Element ID
 */

function resetSelectBoxById(eid) {
    document.getElementById(eid).options[0].selected = 'selected';
}


/**
 * Set Select Box Selection By Index
 * @param eid Element ID
 * @param eindx Element Index
 */

function setSelectBoxByIndex(eid, eindx) {
    document.getElementById(eid).getElementsByTagName('option')[eindx].selected = 'selected';
    //or
    document.getElementById(eid).options[eindx].selected = 'selected';
}


/**
 * Set Select Box Selection By Value
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByValue(eid, eval) {
    document.getElementById(eid).value = eval;
}


/**
 * Set Select Box Selection By Text
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByText(eid, etxt) {
    var eid = document.getElementById(eid);
    for (var i = 0; i < eid.options.length; ++i) {
        if (eid.options[i].text === etxt)
            eid.options[i].selected = true;
    }
}


/**
 * Get Select Box Text By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxText(eid) {
    return document.getElementById(eid).options[document.getElementById(eid).selectedIndex].text;
}


/**
 * Get Select Box Value By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxValue(id) {
    return document.getElementById(id).options[document.getElementById(id).selectedIndex].value;
}
 26 мар. 2014 г., 14:49
Отличный пример того, как взаимодействовать с выбором с помощью чистого JavaScript!
 28 авг. 2018 г., 18:47
Демо ссылка обновляется сейчас :)
 11 авг. 2018 г., 06:47
Ссылка на "Fiddler Demo" Теперь результаты 404 / Страница не найдена :-(

Вы также можете изменить атрибут DOM select.options.selectedIndex следующим образом:

function selectOption(index){ 
  document.getElementById("select_id").options.selectedIndex = index;
}
<p>
<select id="select_id">
  <option selected>first option</option>
  <option>second option</option>
  <option>third option</option>
</select>
</p>
<p>
  <button onclick="selectOption(0);">Select f,irst option</button>
  <button onclick="selectOption(1);">Select second option</button>
  <button onclick="selectOption(2);">Select third option</button>
</p>

Решение Вопроса

+ Изменить

document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected'

в

document.getElementById('personlist').value=Person_ID;
 breq17 мар. 2017 г., 12:53
@utdev к сожалению нет ... нужно использовать цикл
 17 мар. 2017 г., 12:30
как это работает с несколькими значениями? Например:document.getElementById('personlist').value=id1,id2 не будет работать, как это сделать?
 17 мар. 2017 г., 12:50
Поэтому я не могу сделать что-то вроде.value = id1, id2 или же.value = [array] ?
 06 февр. 2019 г., 09:52
Также вы можете получить значение с помощью опций выбора, не устанавливая класс какvar id = document.getElementById('personlist').value, Я использовал в другом ответе, все равно спасибо!
 breq17 мар. 2017 г., 12:44
@utdev вот решение для множественного выбораstackoverflow.com/a/1296068/1251563 совет: вам нужно использовать цикл

mySelect.value = myValue

Просто делатьmySelect.value = myValue где myValue равно значению атрибута опции, которую вы хотите установить.

 14 нояб. 2018 г., 12:17
Почему не все проголосовали, это новая функция? Мне нужно только поддерживать последние браузеры, хотя так или иначе происходит с этим.

Индекс массива начнется с 0. Если вы хотите значение = 11 (Person1), вы получите его с позициейgetElementsByTagName('option')[10].selected.

Ваш ответ на вопрос