如何使用 JavaScript 更改 HTML 选定选项?

IT技术 javascript html-select
2021-02-04 22:50:38

我有这样的选项菜单:

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

但我想用 选择选项value=11 (Person1),而不是Person12

如何更改此代码?

6个回答

改变

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

document.getElementById('personlist').value=Person_ID;
@utdev 这里是多选的解决方案stackoverflow.com/a/1296068/1251563提示:你需要使用循环
2021-03-18 22:50:38
所以我不能做类似.value = id1, id2.value = [array]
2021-03-22 22:50:38
您也可以通过选择选项获得value,而无需像var id = document.getElementById('personlist').value. 我用过不同的答案,谢谢!
2021-03-23 22:50:38
@utdev 不幸的是没有...你需要使用一个循环
2021-03-30 22:50:38
这如何处理多个值?例如:document.getElementById('personlist').value=id1,id2行不通,如何管理?
2021-04-07 22:50:38

作为处理 Selectbox 的纯 JavaScript 代码的工具:

图形理解:

图像-A

在此处输入图片说明


图像-B

在此处输入图片说明


图像-C

在此处输入图片说明

更新 - 2019 年 6 月 25 日 | 提琴手演示

JavaScript 代码:

/**
 * 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;
}
关于如何使用纯 javascript 与选择交互的好例子!
2021-03-15 22:50:38
问题是“如何使用 JavaScript 更改 HTML 选定选项?”。您只需复制/粘贴一段代码而无需回答任何问题。
2021-03-15 22:50:38
链接到“Fiddler Demo”现在导致 404/Page Not Found :-(
2021-04-01 22:50:38

我相信博客文章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;
    }
  }
}
break一旦找到选定的值,您可能应该退出循环。如果列表很长并且目标值是第一个值,则可以节省时间。
2021-04-09 22:50:38
mySelect.value = myValue;

mySelect您的选择框在哪里,以及myValue您想要将其更改为的值。

为什么不是每个人都投票这个,这是一个新功能吗?我只需要支持最近的浏览器,无论如何都要这样做。
2021-03-20 22:50:38
我一直认为你不能这样做,所以我只是有点忽略它。但是当我看到这个答案时,我尝试了它,瞧,它就像输入一样工作。这必须是正确的答案。+1
2021-03-21 22:50:38

您还可以像这样更改 select.options.selectedIndex DOM 属性:

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 first option</button>
  <button onclick="selectOption(1);">Select second option</button>
  <button onclick="selectOption(2);">Select third option</button>
</p>