【发布时间】:2012-09-26 02:16:41
【问题描述】:
我正在尝试重置两个选择字段的值,结构如下,
<select>
<option></option>
<option></option>
<option></option>
</select>
<select>
<option></option>
<option></option>
<option></option>
</select>
jQuery,
$('select').each(function(idx, sel) {
$(sel).find('option :eq(0)').attr('selected', true);
});
不幸的是,无论我尝试多少方法,它都不会发生。控制台中什么都没有。我不知道是怎么回事?我知道必须有办法做到这一点,你可以用 JS 做 任何事情
编辑:
我发现只有当我尝试在单击 dom 元素时触发代码时才会出现问题,但是,我知道代码应该可以工作,因为当我有
$('p').click(function(){
console.log('test');
});
它将“测试”输出到控制台,但是当我在此函数中包含代码时,什么也没有发生。这是为什么呢?
【问题讨论】:
-
您是否尝试过使用“val()”进行重置?
-
嗯...你的代码对我有用。
-
你应该编码
find('option:eq(0)')而不是find('option :eq(0)') -
该代码将设置每个选择的第一个选项的选定属性。它不会从其他可能具有该属性的选项中删除该选定属性(因此两个选项可能具有该选定属性,这可能会在多个选择元素中产生意外结果)。此外,它不一定会选择选项,因为 selected 属性仅设置默认选择哪个选项,而不是当前选择哪个选项。某些浏览器确实将其设为当前选择的选项,而其他浏览器则不会。
-
点击here查看我对此主题的回答或访问:stackoverflow.com/a/46196428/6016078
标签: javascript jquery