我有下面的代碼基於var「ColTypeCus」刪除選擇的項目。Jquery - 刪除選擇項目(通過陣列循環)
$(document).ready(function() {
var ColTypeCus = '$FooVar';
if (ColTypeCus.substr(0, 21) == "Machinery") {
$("select#ctl00_PageBody_lstValuationSource option[value='3']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='1']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='2']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='4']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='5']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='12']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='13']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='14']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='15']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='16']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='18']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='19']").remove();
}
else if (ColTypeCus.substr(0, 7) == "Banking") {
$("select#ctl00_PageBody_lstValuationSource option[value='17']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='3']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='7']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='8']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='9']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='10']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='11']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='12']").remove();
}
else if (ColTypeCus.substr(0, 19) == "Inventory") {
$("select#ctl00_PageBody_lstValuationSource option[value='3']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='1']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='2']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='4']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='5']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='12']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='14']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='15']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='16']").remove();
$("select#ctl00_PageBody_lstValuationSource option[value='18']").remove();
}
});
它的偉大工程,但我想知道是否有我可以實現做同樣的事情,更優雅的方式(更少的代碼)。
一個想法是指定要刪除的數組中列出的項目並循環遍歷項目。
***pseudocode***
var ColType = ''
var RemoveThis = ''
if Coltype = "Machinery"
RemoveThis = ('1,3,5,7,9');
{
$("select#ctl00_PageBody_lstValuationSource option[value='+RemoveThis+']").remove();
}
elseif Coltype = "Banking"
RemoveThis = ('2,4,6,8');
{
$("select#ctl00_PageBody_lstValuationSource option[value='+RemoveThis+']").remove();
}
有什麼建議嗎?
這個問題應該被移動到[代碼審查(http://codereview.stackexchange.com/),記錯。 – MMM 2013-05-01 14:43:51
我的工作也很完美 http://jsfiddle.net/egRv2/1/ – dt192 2013-05-01 18:28:11
對不起 - 沒有看到您的jsfiddle解決方案在您的原始文章。 Thx – user1028445 2013-05-02 15:10:34