如何用jQuery在任意位置添加option并设置selected属性?能否通过append实现?
如何用jQuery添加
没问题,我来帮你搞定这个需求!下面分两种场景给你说明:
1. 用append()添加并设置selected属性
你的代码已经用到了append(),其实只需要在创建<option>的配置对象里多加上selected: true就行。不过要注意:你的循环里i==3对应的是第4个元素(因为i从0开始计数),如果要第三个位置的元素,应该改成i==2。
修改后的代码如下:
for (let i = 0; i < 10; i++) { // 基础配置 const optionConfig = { value: i, text: i }; // 当i等于目标值时(这里如果要第三个位置就用i===2),添加selected属性 if (i === 3) { optionConfig.selected = true; } // 追加到select里 $('#mySelect').append($('<option>', optionConfig)); }
这样循环到i=3时,添加的option就会自动被选中。
2. 插入到任意位置(比如第三个位置)并设置selected
如果你的需求不是追加到末尾,而是插入到指定位置(比如成为第三个
示例代码:
// 先创建要插入的option,直接带上selected属性 const $targetOption = $('<option>', { value: 3, text: 3, selected: true }); // 定位到第三个<option>(索引为2,因为从0开始),然后在它前面插入新option,这样新option就成为第三个 $('#mySelect option').eq(2).before($targetOption);
如果是在循环中动态插入到不同位置,只需要调整eq()里的索引值就行。
小提醒
- 普通的
<select>默认只能有一个选中的option,如果你给多个option设置了selected: true,浏览器只会保留最后一个的选中状态。 - 如果是
<select multiple>(多选模式),可以给多个option设置selected: true来实现多选。
内容的提问来源于stack exchange,提问作者elena6978
相关产品推荐
相关产品推荐

