javascript - 如何通过 JavaScript 中的文本内容选择 HTML "<option>"的选定 "<select>"?

标签 javascript jquery html drop-down-menu html-select

我有以下 HTML <select>元素:

<select id="account" class="form-control" name="account">
  <option value="USFSDsdfsFLIJSD656FKLLS5admFOWEJF0SOF">5265241</option>
  <option value="LDSOJFksdfo52slkdfjskdfooojoijoijoj56">6524125</option>
</select>

我想将所选选项设置为 <option>文本内容为 6524125 的标签.

我尝试使用以下代码来执行此操作:

document.getElementById("account").value = "6524125";

虽然这不起作用,但是我如何设置这个<select>的值按文本元素?

更新:是的,我正在使用 jQuery,这是迄今为止我的代码:

$("option:contains('6524125')").prop("selected", true);

最佳答案

您可以循环遍历 select 中的 option 元素来查找匹配项,例如:

const text = "6524125";
const options = document.getElementById("account").options;
for (let n = 0; n < options.length; ++n) {
    const option = options[n];
    if (option.text === text) {
        option.selected = true;
        break;
    }
}
<select id="account" class="form-control" name="account">
    <option value="USFSDsdfsFLIJSD656FKLLS5admFOWEJF0SOF">5265241</option>
    <option value="LDSOJFksdfo52slkdfjskdfooojoijoijoj56">6524125</option>
</select>

在某些现代环境中 options 是可迭代的,因此您可以更简洁地做到这一点:

const text = "6524125";
for (const option of document.getElementById("account").options) {
    if (option.text === text) {
        option.selected = true;
        break;
    }
}
<select id="account" class="form-control" name="account">
    <option value="USFSDsdfsFLIJSD656FKLLS5admFOWEJF0SOF">5265241</option>
    <option value="LDSOJFksdfo52slkdfjskdfooojoijoijoj56">6524125</option>
</select>

不过,该规范并不要求 options 是可迭代的(它是一个 HTMLOptionsCollection,它继承自 HTMLCollection ,这与 NodeList 不同> 不可迭代)。如果您在自己的应用程序或页面(而不是库)中执行此操作,则可以使 HTMLCollection 可迭代,如 this answer 中所示。 .

关于javascript - 如何通过 JavaScript 中的文本内容选择 HTML "<option>"的选定 "<select>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56240244/

相关文章:

javascript - 强制元素具有相同的边界(单独的内联 block / float :left; clear:right doesn't work)

javascript - 更改 javascript 版本后 onclick() 失败

javascript - div出现在鼠标坐标上

html - 右滚动条导致文本在显示时缩小

javascript - 如何访问被重写的对象的内置方法?

javascript - 很难理解最长回文算法

javascript - 前端的 Meteor,后端的 Express (NodeJS)

javascript - 如何在按钮提交之前验证数据?

python - 在Python中解析HTML数据

html - "Source"和 "Generated Source"有什么区别?