2011-05-17 137 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>