繁体   English   中英

Append 选项到 select 并设置所选选项

[英]Append options to select and set selected option

我正在以编程方式创建一个带有几个选项的select元素。 我想选择一个特定的选项。 为此,我使用option.selected = true 我也试过option.selected = 'selected'

这是我的代码:

let select_menu_for_sequence = document.createElement("select");
select_menu_for_sequence.classList.add("sequence");


for (i = 1; i <= 4; i++) {
    let option = document.createElement("option");
    option.text = i;

    if (i == 2) {
        option.selected = true;
    }

    select_menu_for_sequence.appendChild(option);
}

console.log(select_menu_for_sequence.outerHTML)

Output:

<select class="sequence">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
</select>

预计 output:

<select value="2" class="sequence">
    <option>1</option>
    <option selected>2</option>
    <option>3</option>
    <option>4</option>
</select>

我真的找不到我做错了什么。

您可以使用 setAttribute() 方法。 它只需要两个 arguments:您要添加的属性及其值。

for (i = 1; i <= 4; i++) {
    let option = document.createElement("option");
    option.text = i;

    if (i == 2) {
        option.setAttribute('selected','');
    }

    select_menu_for_sequence.appendChild(option);
}

要么

option.setAttribute('selected','true');

更新

为了在 HTML 中看到“已选择”,请使用属性方法而不是将其视为带有点符号的属性。

select.options[2].toggleAttribute("selected");

selected上使用点符号使其成为 HTML 中未显示的属性,但很明显.option[2]已被选中。

select.options.selectedIndex = 2;

我认为您忽略了 append 和 select 到<body>或文档上的任何内容。

 const select = document.createElement("select"); select.classList.add("sequence"); document.body.append(select); for (let i=1; i < 5; i++) { let option = document.createElement("option") option.textContent = i select.append(option); } //select.options.selectedIndex = 2; select.options[2].toggleAttribute("selected"); console.log(select.outerHTML);

检查这个

let select_menu_for_sequence = document.createElement("select");
select_menu_for_sequence.classList.add("sequence");

for (i = 1; i <= 4; i++)

    select_menu_for_sequence.options[select_menu_for_sequence.options.length]=new Option(i, i);
    
    if (i == 2)
        select_menu_for_sequence.options[select_menu_for_sequence.options.length]=new Option(i, i,true,true);

console.log(select_menu_for_sequence)

<select>元素的值设置为所选选项的值。

select_menu_for_sequence.value = 2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM