jquery - 在动态生成的“选择”中选择“选项”

时间:2013-06-15 17:50:56

标签: jquery jquery-mobile drop-down-menu

我们如何使用jQuery在'Select'中选择'Option'?

$('#s_choice').selectedIndex = 1;//select 2nd item

不工作。 JsFiddle在http://jsfiddle.net/yesprasoon/pduX7/

5 个答案:

答案 0 :(得分:3)

只需添加刷新,您也可以在jquery对象上使用prop或访问DOM元素属性,如$('#s_choice')[0].selectedIndex

$('#s_choice').prop('selectedIndex', 1);
$('#s_choice').selectmenu('refresh'); 

或者直接链接

$('#s_choice').prop('selectedIndex', 1).selectmenu('refresh').change();

Demo

原因是,selectmenu是一个JQM小部件,因此在实际的select元素上设置属性后,您需要对其进行刷新以刷新小部件。

Here是文档。

答案 1 :(得分:1)

尝试:

$('#s_choice')[0].selectedIndex = 1;

或者:

$('#s_choice').prop('selectedIndex', 1);

或者简单地说:

document.getElementById('s_choice').selectedIndex = 1;

您遇到的问题是selectedIndex是DOM节点的属性,而不是jQuery对象。

答案 2 :(得分:1)

为您提供不同的ID或类别,然后您可以$('#s_choice').find('#option3').attr("checked", true)

答案 3 :(得分:1)

[更新&小提琴补充]

试试这个,肯定会改变你的选择并更新ui:

$('#s_choice').children(':eq(1)').attr('selected','selected').change();

将索引放在方程式中的括号中,例如:..(':eq(0)')..

JSFiddle

答案 4 :(得分:1)

在你的小提琴中,我改变了两件事:

  • $('#s_choice').selectedIndex = 1;更改为$('#s_choice').prop("selectedIndex", 1);。要使selectedIndex像你实现的那样工作,你需要一个DOM对象,而不是一个jQuery对象。
  • 更改了您选择将脚本放置在onLoadno wrap - in <body>的位置的选项。这意味着您的脚本将放在正文中。必须始终放置脚本以使其工作。所以不需要refresh。对于诸如设置默认值之类的微不足道的更改,您无需使用刷新方法。

而且瞧!它有效:)

Here's your updated demo