小编bbo*_*nev的帖子

jQuery如何选择第一个非隐藏的选择选项

以下jQuery 1.9和1.10+之间的行为有所不同:

<select id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

$('#s1 option[value=1]').hide();
$('#s1').val('');
Run Code Online (Sandbox Code Playgroud)

此代码背后的想法是在隐藏一些选项(包括当前选定的选项)后选择第一个非隐藏选项.

由于jQuery 1.10+ $('#s1').val('');不再选择第一个非隐藏选项,而且.val(<some proper value for the particular select box>)工作正常.

尝试以下方法不帮助,因为双方selectedIndex.first().val()考虑隐藏的选项:

$("#s1").prop("selectedIndex", 0);

$('#s1 option').first().prop('selected', true);

我想到的下一件事(也由C-link建议)也不起作用,因为:visible选择器对选择选项不起作用.

$('#s1 option:visible').first().prop('selected', true);

寻找一些通用的方法(不依赖于知道什么是特定值以及隐藏了哪些选项)来实现与$('#s1').val('');旧jQuery 相同的行为.

html javascript jquery

7
推荐指数
2
解决办法
1万
查看次数

jQuery选择框.val('')行为从1.9到1.10+不同,最简单的方法是什么

以下jQuery 1.9和1.10+之间的行为有所不同:

<select id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

$('#s1 option[value=1]').hide();
$('#s1').val('');
Run Code Online (Sandbox Code Playgroud)

这段代码背后的想法是选择第一个选项.

在1.10之后,$('#s1').val('');零件不再以相同的方式工作.我认为它从来没有意味着以这种方式使用,但它的旧代码必须以某种方式进行现代化......

在jQuery 1.10之后没有选择并$('#s1').val()返回null.

将代码更改为:

$('#s1 option[value=1]').hide();
$('#s1').val($('#s1 option').first().val());
Run Code Online (Sandbox Code Playgroud)

是否有新的和旧的jQuery版本的工作.

我的问题是,是否有更短/更优雅的方式来做同样的事情?

javascript jquery

5
推荐指数
1
解决办法
296
查看次数

标签 统计

javascript ×2

jquery ×2

html ×1