我们如何使用 jQuery 在“选择”中选择“选项”?
$('#s_choice').selectedIndex = 1;//select 2nd item
不工作。JsFiddle 在http://jsfiddle.net/yesprasoon/pduX7/
我们如何使用 jQuery 在“选择”中选择“选项”?
$('#s_choice').selectedIndex = 1;//select 2nd item
不工作。JsFiddle 在http://jsfiddle.net/yesprasoon/pduX7/
只需添加刷新,您也可以prop
在 jquery 对象上使用或像这样访问 DOM 元素属性$('#s_choice')[0].selectedIndex
$('#s_choice').prop('selectedIndex', 1);
$('#s_choice').selectmenu('refresh');
或者只是把它串起来
$('#s_choice').prop('selectedIndex', 1).selectmenu('refresh').change();
原因是,selectmenu 是一个 JQM 小部件,因此在实际选择元素上设置属性后,您需要对其进行刷新以刷新小部件。
这是文档。
尝试:
$('#s_choice')[0].selectedIndex = 1;
或者:
$('#s_choice').prop('selectedIndex', 1);
或者简单地说:
document.getElementById('s_choice').selectedIndex = 1;
您遇到的问题是这selectedIndex
是 DOM 节点的属性,而不是 jQuery 对象。
给你的选项不同的ID或类然后你可以做$('#s_choice').find('#option3').attr("checked", true)
在你的小提琴中,我改变了两件事:
$('#s_choice').selectedIndex = 1;
_ $('#s_choice').prop("selectedIndex", 1);
要selectedIndex
按照您的方式工作,您需要一个 DOM 对象,而不是 jQuery 对象。onLoad
更改为no wrap - in <body>
。这意味着您的脚本将被放置在正文中。必须始终放置脚本才能使其正常工作。所以refresh
不需要。对于琐碎的更改,例如设置默认值,您不需要使用刷新方法。瞧!有用 :)
[更新和小提琴添加]
试试这个,它肯定会改变你的选择并更新用户界面:
$('#s_choice').children(':eq(1)').attr('selected','selected').change();
将您的索引放在 eq 中的括号之间,例如:..(':eq(0)')..