jQuery如何通过值选择选项?
问题描述:
如何选择不在'restrictedIds'中的选项,例如,选择器应该选择值为24和31的选项。 另外我知道如何使用'.inArray'和'.each()'来完成。但看看你的解决方案会很好。谢谢。jQuery如何通过值选择选项?
...
var restrictedIds='0,38,23';
...
<select class="text4" size="1" name="drivers">
<option value="0"></option>
<option value="24">test1</option>
<option value="31">test2</option>
<option value="38">test3</option>
<option value="23">test4</option>
</select>
答
你应该在这些文章一起来看看:
http://api.jquery.com/attribute-equals-selector/
http://api.jquery.com/attribute-not-equal-selector/
http://api.jquery.com/multiple-attribute-selector/
你可以做的是从白名单中只选择选项,即
$('option[value=24],option[value=31]')
但我我不知道这是否比.each()更快..
答
您可以使用.filter
。为了更好的表现,我建议制作一张ID的:
var restrictedIds = {
0: true,
28: true,
23: true
};
var options = $('select[name="drivers"] option').filter(function() {
return !restrictedIds[this.value];
//or !(this.value in restrictedIds)
});
答
做最简单的事情是用Val函数http://api.jquery.com/val/。它支持读取和写入值以选择具有多个选项。
下面是一个可能适用于您的示例。
<!DOCTYPE html>
<html>
<head>
<style>
p { color:red; margin:4px; }
b { color:blue; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p></p>
<select id="single">
<option>Single</option>
<option>Single2</option>
</select>
<select id="multiple" multiple="multiple">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
<script>
function displayVals() {
$("#multiple").val([1,3]);
var singleValues = $("#single").val();
var multipleValues = $("#multiple").val() || [];
$("p").html("<b>Single:</b> " +
singleValues +
" <b>Multiple:</b> " +
multipleValues.join(", "));
}
$("select").change(displayVals);
displayVals();
</script>
</body>
</html>
如果你想有一个多重选择,你必须设置相应的属性。请发布您的尝试。 – 2011-05-17 13:27:49
我想你误会了我,我希望jQuery变量与选项对象.. – user628147 2011-05-17 13:30:41
啊我看到....看,最好也发布你的代码。 *选择选项*在这种情况下非常模糊。 – 2011-05-17 13:31:58