2011-05-17 100 views
1

如何选择不在'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> 
+0

如果你想有一个多重选择,你必须设置相应的属性。请发布您的尝试。 – 2011-05-17 13:27:49

+0

我想你误会了我,我希望jQuery变量与选项对象.. – user628147 2011-05-17 13:30:41

+0

啊我看到....看,最好也发布你的代码。 *选择选项*在这种情况下非常模糊。 – 2011-05-17 13:31:58

回答

1

您可以使用.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) 
}); 
0

做最简单的事情是用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>