2011-06-03 83 views
0

我有一个HTML组合框,它有两个条目。一个是空白的,另一个是一些文本。我不知道价值是什么。如何使用jquery在组合框中选择一个条目?

是否有无论如何通过使用jQuery(给定上面的常量),我可以有条目中的文本在程序中选择组合框?

+0

请告诉我们HTML和你已经尝试了什么? – mcgrailm 2011-06-03 12:42:41

回答

1

这是一个办法做到这一点

假设这是HTML

<select size="5" id="foobar"> 
    <option value="">foo</option> 
    <option value="bar">bar</option> 
</select> 

这里是jQuery的

这里是一个working demo

+0

值得注意的是'.prop('selected',true)'需要jQuery 1.6+,而'.attr('selected','selected')'适用于所有版本的jQuery。 – Tomalak 2011-06-03 12:57:30

+0

@Tomalak是的,这是真的我打算指出。我想用1.6的道具开始展示我没有批评的新方法 – mcgrailm 2011-06-03 13:01:37

+0

。 :) – Tomalak 2011-06-03 13:03:36

1

这将选择第一个非空选项

$("#mySelectBox").val(function() { 
    for (var i = 0; i<this.options.length; i++) { 
    if (this.options[i].text != "") return this.options[i].value; 
    } 
}); 

你可以做$.trim(this.options[i].text)如果文本可以包含空格。

这是一个通用的解决方案,如果您确定始终想要选择第二个选项,当然存在一个更简单的方法 - 请参阅mcgrailm's answer

0

如何排序列表:

$("#combo").html($("#combo option").sort(function (a, b) { 
    return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
})); 

但出于兴趣,为什么不选择有选择的价值 - 它是动态创建的?

0

纯jQuery选择是选择第一个非空选项(基于期权的文本):

$('#myDropDown option:not(:empty):first') 

使用下面的示例:

<select size="5" id="foobar"> 
    <option value="emptyoption"></option> 
    <option value="bar">bar</option> 
</select> 

这将选择 “栏” 选项:

$('#foobar option:not(:empty):first').prop('selected',true); 
+0

这不起作用看[小提琴](http://jsfiddle.net/mcgrailm/yA6AJ/)。除非我错过了某些东西,它仍然会选择空的项目 – mcgrailm 2011-06-03 13:09:41

+0

如果选项的文本为空,这会起作用。在您的示例中,该值为空,而不是文本!从原来的问题,我认为该选项的文本是空白的... – 2011-06-03 14:03:27

+0

好吧,考虑到这种情况下,它确实工作坏了OP似乎是mia会很高兴知道HTML真的看起来像 – mcgrailm 2011-06-03 14:17:55

相关问题